摘要:简介此方法用于继承指定对象的属性和方法然后去创建一个新的对象调用时需要传入两个参数使用查看结果如下查找对象的属性时会从对象自身顺着原型链一直往上找直到找到返回属性值找不到返回如果对象的属性是不可枚举的那么虽然不能被遍历到但是如果存在还是可以
Object.create()简介
此方法用于继承指定对象的属性和方法然后去创建一个新的对象, 调用时需要传入两个参数[o: object, properties: object]
使用
var obj = { id: 123, name: "Tom", age: 19, sex: 9, on: { eat: () => alert(`it"s time to eat`) } } var subObj = Object.create(obj || null);
查看结果如下:
查找对象的属性时会从对象自身顺着原型链一直往上找, 直到找到返回属性值, 找不到返回undefined; 如果对象的属性是不可枚举的, 那么虽然不能被for in遍历到, 但是如果存在还是可以被找到的, eg:
首先创建一个对象, 使用Object.defineProperties()方法设置属性, 其中id不可枚举, name可枚举
var obj = {} Object.defineProperties(obj, { id: { value: 123, enumerable: false }, name: { value: "Tom", enumerable: true } })
遍历对象, 以验证其可枚举的属性
for (var key in obj) { console.log(`{value: key} : ${obj[key]}: ${key}`) }
查找属性, 发现都是可以获取到的
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/105538.html
摘要:使用构造函数的原型继承相比使用原型的原型继承更加复杂,我们先看看使用原型的原型继承上面的代码很容易理解。相反的,使用构造函数的原型继承像下面这样当然,构造函数的方式更简单。 五天之前我写了一个关于ES6标准中Class的文章。在里面我介绍了如何用现有的Javascript来模拟类并且介绍了ES6中类的用法,其实它只是一个语法糖。感谢Om Shakar以及Javascript Room中...
摘要:尽管的右操作数是构造函数,但计算过程实际是检测了对象的继承关系。通过创建的对象使用构造函数的属性作为它们的原型。 JavaScript之对象属性 Object.create()继承 ECMAScript 5定义了一个名为Object.create()的方法,它创建一个新对象, 其中第一个参数是这个对象的原型。Object.create()提供第二个可选参数,用以对对象的属性进行进一步描...
摘要:在节中,我们学习到了通过构造函数创建对象的三个重要步骤,其中的一步是把构造函数的对象设置为创建对象的原型。利用而不是直接用创建一个实例对象的目的是,减少一次调用父构造函数的执行。 JavaScript语言不像面向对象的编程语言中有类的概念,所以也就没有类之间直接的继承,JavaScript中只有对象,使用函数模拟类,基于对象之间的原型链来实现继承关系,ES6的语法中新增了class关键...
摘要:父类的原型方法子类调用构造函数子类继承父类前面说到的,实际上是将第一个参数无论是原型对象还是普通对象的属性添加到新创建对象的原型中,这也就意味着,通过中定义的属性和方法是无法通过方法添加到新创建对象中的。 ES5 和 ES6 中 Object 添加了很多新的方法,现在很多开源代码中有用到了这些,今天来整理一番。 Object.assign() 这是ES6新添加的方法,Object.as...
阅读 3167·2021-11-22 15:25
阅读 3838·2021-11-17 09:33
阅读 3361·2021-11-08 13:15
阅读 3044·2021-09-22 10:56
阅读 535·2021-08-31 09:45
阅读 2745·2019-08-30 13:49
阅读 3072·2019-08-30 12:52
阅读 1136·2019-08-29 17:05