JS的for-in和in

jas*_*son 2 javascript for-in-loop

var result = function(){}
console.log("constructor" in result);//true
console.log("__proto__" in result);//true
console.log("prototype" in result);//true

for (var prop in result) {
   console.log(prop); // no output!!
}
Run Code Online (Sandbox Code Playgroud)

当我in用于确定结果中的属性时,它返回true; 但是当我使用时for-in,结果中没有属性,为什么?

Yos*_*shi 7

参考:https: //developer.mozilla.org/en/JavaScript/Reference/Statements/for...in

for ... in循环不会迭代不可枚举的属性.从内置构造函数(如Array和Object)创建的对象继承了Object.prototype和String.prototype中不可枚举的非可枚举属性,例如String的indexOf方法或Object的toString方法.循环将迭代对象的所有可枚举属性,或者它继承自其构造函数的proptotype(包括覆盖内置属性的任何属性).