牧羊人nacy
for...in 循环只遍历可枚举的属性(包括自有属性和从原型链中继承的属性),属性是否可枚举由属性的enumerable值决定,内置方法全部都是不可枚举的js代码中使用obj.prop = value/function(){} 方式添加的属性都是可枚举属性,若要添加不可枚举属性,可用如下方式:var kxy = new Person();Object.defineProperty(kxy, "sex", { value: "female", enumerable: false});有两种方法可以查看内置对象的属性:第一种利用getOwnPropertyNames,该函数返回所有自有属性(不包括继承的),不管是否可枚举var props = Object.getOwnPropertyNames(String.prototype);for(var i=0;i<props.length;i++){console.log(props[i]);}第二种最简单:console.log(String.prototype);console.log(Array.prototype);控制台显示的就是内置对象的所有属性了(String对象继承的属性都是从String.prototype来的)