for..in 与 Object.getPropertyName

2019-04-17  本文已影响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
上一篇 下一篇

猜你喜欢

热点阅读