美文网首页
for..in 与 Object.getPropertyName

for..in 与 Object.getPropertyName

作者: 青城墨阕 | 来源:发表于2019-04-17 18:50 被阅读0次
区别.jpg

由上图可见,for..in可以遍历对象上所有的属性,包括原型属性;而
Object.getPropertyNames() 与 Object.keys()只能遍历对象中可枚举的属性。

hasOwnProperty.jpg

以及obj.hasOwnProperty(propName)检测是否含有自身属性。

从该段测试代码中可得出以下原型链的关系:

myObj.prototype.newPro
//"yes"
myObj.newPro
//undefined
myObj.prototype.newShine
//"It's me"
myObj.newShine
//"It's me"
myTest.newPro
//"yes"
myTest.newShine
//"It's me"


/*----------new对象的原型链--------------*/
myTest.__proto__ === myObj.prototype;
//true
myObj.prototype.__proto__ === Object.prototype;



/*------------create对象的原型链--------------------*/
var myTest3 = Object.create(myObj);
myTest3.__proto__ === myObj;
//true
myTest3.__proto__.prototype.__proto__ === Object.prototype;
//true


new()对象的原型链.jpeg

相关文章

网友评论

      本文标题:for..in 与 Object.getPropertyName

      本文链接:https://www.haomeiwen.com/subject/bafowqtx.html