通过Object.create()继承对象的属性和方法

    1. Object.create()简介
      此方法用于继承指定对象的属性和方法然后去创建一个新的对象, 调用时需要传入两个参数[o: object, properties: object]
    2. 使用

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

      查看结果如下:

      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

    查找属性, 发现都是可以获取到的

    clipboard.png
    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章