乐趣区

关于javascript:forin-循环及-hasOwnProperty


for in 不能循环动静属性 this.xxx
for in 疏忽原型 prototype;
for in 能够循环原型链 __proto__(优先级别最低);
for in 疏忽 enumerable: undefined|null|false|0
hasOwnProperty 能够过滤原型链 proto
hasOwnProperty 不能够过滤 enumerable 为真的属性

function F() {this.p0 = 'this.p0';}

F.__proto__.p1 = 'f.__proto__.p1';
F.p2 = 'f.p2';
F.prototype.p3 = 'f.prototype.p3';
Object.defineProperty(F, 'p4', {value: 'defineProperty enumerable: undefined'});
Object.defineProperty(F, 'p5', {value: 'defineProperty enumerable: true', enumerable: true});

for (var k in F) {console.log('hasOwnProperty:', F.hasOwnProperty(k), '\t', k, '->', F[k]);
}
退出移动版