访问 angular.forEach 中的父属性
Access parent properties in angular.forEach
在这里,我创建了一个对象 say d。
var d={
a:"firstName",
b:"lastName"
};
现在我想创建另一个对象 A,它继承了 d 的属性。
var A=Object.create(d);
console.log(A.a);//returns "firstName"
console.log(A.b);//returns "lastName"
但是当我使用
console.log(A);// returns 空对象,因为它不显示继承属性。
但是与 angular.forEach 一起使用时几乎没有问题。
我想使用 angular.forEach 解析所有属性,包括继承的属性。如何遍历包含父属性的对象?
我必须使用 Object.create,因为父对象是动态的,即将来可能包含更多对象,这些属性将自动出现在子对象中。这里 我不能使用 angular.copy,因为它会进行深度复制并破坏父对象之间的关系。
在 google chrome 的先前版本中,另请参阅继承属性。但是更新到版本43.0.2357.52后,它在控制台中没有显示继承的属性
我不知道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
访问自己的属性和继承的属性。
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']);
上找到了这个例子
您应该使用 angular.copy() 来执行此操作:
var A = angular.copy(d);
angular.forEach
不会迭代继承的属性,也没有任何函数可以迭代。
... It is worth noting that .forEach does not iterate over inherited properties because it filters using the hasOwnProperty method... angular 1.4
您需要实现自己的功能。
在这里,我创建了一个对象 say d。
var d={
a:"firstName",
b:"lastName"
};
现在我想创建另一个对象 A,它继承了 d 的属性。
var A=Object.create(d);
console.log(A.a);//returns "firstName"
console.log(A.b);//returns "lastName"
但是当我使用 console.log(A);// returns 空对象,因为它不显示继承属性。
但是与 angular.forEach 一起使用时几乎没有问题。
我想使用 angular.forEach 解析所有属性,包括继承的属性。如何遍历包含父属性的对象?
我必须使用 Object.create,因为父对象是动态的,即将来可能包含更多对象,这些属性将自动出现在子对象中。这里 我不能使用 angular.copy,因为它会进行深度复制并破坏父对象之间的关系。
在 google chrome 的先前版本中,另请参阅继承属性。但是更新到版本43.0.2357.52后,它在控制台中没有显示继承的属性
我不知道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
访问自己的属性和继承的属性。
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']);
上找到了这个例子
您应该使用 angular.copy() 来执行此操作:
var A = angular.copy(d);
angular.forEach
不会迭代继承的属性,也没有任何函数可以迭代。
... It is worth noting that .forEach does not iterate over inherited properties because it filters using the hasOwnProperty method... angular 1.4
您需要实现自己的功能。