經過Object.create()繼承對象的屬性和方法

    1. Object.create()簡介
      此方法用於繼承指定對象的屬性和方法而後去建立一個新的對象, 調用時須要傳入兩個參數[o: object, properties: object]
    2. 使用spa

      var obj = {
          id: 123,
          name: 'Tom',
          age: 19,
          sex: 9,
          on: {
              eat: () => alert(`it\'s time to eat`)
          }
      }
      
      var subObj = Object.create(obj || null);

      查看結果以下:code

      clipboard.png

      clipboard.png

    1. 查找對象的屬性時會從對象自身順着原型鏈一直往上找, 直到找到返回屬性值, 找不到返回undefined; 若是對象的屬性是不可枚舉的, 那麼雖然不能被for in遍歷到, 可是若是存在仍是能夠被找到的, eg:

    首先建立一個對象, 使用Object.defineProperties()方法設置屬性, 其中id不可枚舉, name可枚舉對象

    var obj = {}
    Object.defineProperties(obj, {
        id: {
            value: 123,
            enumerable: false
        },
        name: {
            value: 'Tom',
            enumerable: true
        }
    })

    clipboard.png

    遍歷對象, 以驗證其可枚舉的屬性繼承

    for (var key in obj) {
        console.log(`{value: key} : ${obj[key]}: ${key}`)
    }

    clipboard.png

    查找屬性, 發現都是能夠獲取到的ip

    clipboard.png
    相關文章
    相關標籤/搜索