在这里,我创建了一个对象说d。
new
现在我想创建另一个对象A,它继承了d。
的属性new
但是当我使用时 console.log(A); //返回空对象,因为它不显示继承的属性。
但是在使用angular.forEach时它没有什么问题。
我想使用angular.forEach来解析包括继承属性在内的所有属性。如何循环包括父属性的对象?
我必须使用Object.create,因为父对象是动态的,即它将来可能包含更多对象,并且这些属性将自动出现在子对象中。这里我不能使用angular.copy ,因为它会进行深层复制并打破父对象之间的关系。
在以前版本的Google Chrome中,请参阅继承的属性。但在更新到版本43.0.2357.52后,它没有在控制台中显示继承的属性
答案 0 :(得分:1)
我不知道Angular是否具有特定功能(我没有看到),但您可以使用JavaScript的for-in
循环来查看:
var key;
for (key in d) {
// key will be "firstName" on one pass and "lastName" on another
// there IS NO guarantee of order
}
for-in
访问自己的属性和继承的属性。
答案 1 :(得分:1)
您应该使用angular.copy()来执行此操作:
var A = angular.copy(d);
答案 2 :(得分:0)
var values = {name: 'misko', gender: 'male'};
var log = [];
angular.forEach(values, function(value, key) {
this.push(key + ': ' + value);
}, log);
expect(log).toEqual(['name: misko', 'gender: male']);
上找到了这个例子
答案 3 :(得分:0)
angular.forEach
不会迭代继承的属性,也没有任何执行此功能的函数。
...值得注意的是.forEach不会迭代继承的属性,因为它使用hasOwnProperty方法进行过滤... angular 1.4
您需要实现自己的功能。