美文网首页
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