用 Object.create 创建的对象会继承原型吗?

彼得·瓦格纳

考虑以下代码:

var oNew = Object.create(MyConstructor.prototype);

比如说,MyConstructor在构造函数中定义了“自己的”数据成员。oNew继承那些数据成员吗?oNew继承所有的MyConstructor.prototype方法吗?此外,MyConstructor.prototype可能本身从一个对象继承,比如new f()

回旋

比如说,MyConstructor在构造函数中定义了“自己的”数据成员。oNew 会继承那些数据成员吗?

不,不会;原型的constructor功能有意地与原型分开。的主要好处之一Object.create是它允许您将对象创建过程与对象实例化过程分开(使用 using 调用构造函数new确实结合了两者)。

oNew 会继承所有的MyConstructor.prototype方法吗?

是的,即使使用Object.create.

演示版

function MyConstructor () {
  this.ownProperty = 'value'
}

MyConstructor.prototype.inheritedProperty = 'value'

var createdObject = Object.create(MyConstructor.prototype)

console.log(createdObject)
console.log('inheritedProperty' in createdObject) //=> true
console.log('ownProperty' in createdObject) //=> false


var constructedObject = new MyConstructor()

console.log(constructedObject)
console.log('inheritedProperty' in constructedObject) //=> true
console.log('ownProperty' in constructedObject) //=> true

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用 Object.create() 模仿经典继承

来自分类Dev

Object.create会更改Chrome中原型对象的控制台输出吗?

来自分类Dev

检查用 Object.create 创建的对象是否是原始对象的实例

来自分类Dev

使用Object.create作为原型的原型继承给出[Object]作为实例的原型

来自分类Dev

使用Object.create作为原型的原型继承给出[Object]作为实例的原型

来自分类Dev

用例Object.create(null)?

来自分类Dev

用例Object.create(null)

来自分类Dev

了解使用“ Object.create()”而不是“ new”关键字创建原型对象

来自分类Dev

使用Object.create()动态创建对象

来自分类Dev

使用Object.create()创建XMLHttpRequest对象

来自分类Dev

用原型继承Java

来自分类Dev

Object.create(Function.prototype)=>创建继承属性的函数

来自分类Dev

Object.create(Function.prototype)=>创建继承属性的函数

来自分类Dev

object.create和原型之间的关系

来自分类Dev

用Ansible运行'docker volume create'吗?

来自分类Dev

用Java创建对象(继承和多态)

来自分类Dev

使用Object.create进行继承?

来自分类Dev

使用Object.assign和Object.create进行继承

来自分类Dev

在使用Object.create创建的对象中使用super

来自分类Dev

AngularJS使用Object.create创建范围对象

来自分类Dev

在使用Object.create创建的对象中使用super

来自分类Dev

使用Object.create(),示例应该在其“原型”属性上附加方法吗?

来自分类Dev

扩展对象时,为什么要使用Object.create作为原型?

来自分类Dev

用Object.defineProperty定义的属性的Javascript继承

来自分类Dev

使用Object.create()和Object.assign()创建对象之间有什么区别?

来自分类Dev

Object.prototype是对象,而原型是某种原因吗?

来自分类Dev

Object.prototype是对象,而原型是某种原因吗?

来自分类Dev

用JavaScript安全地继承原型

来自分类Dev

用flutter create创建android文件夹

Related 相关文章

  1. 1

    用 Object.create() 模仿经典继承

  2. 2

    Object.create会更改Chrome中原型对象的控制台输出吗?

  3. 3

    检查用 Object.create 创建的对象是否是原始对象的实例

  4. 4

    使用Object.create作为原型的原型继承给出[Object]作为实例的原型

  5. 5

    使用Object.create作为原型的原型继承给出[Object]作为实例的原型

  6. 6

    用例Object.create(null)?

  7. 7

    用例Object.create(null)

  8. 8

    了解使用“ Object.create()”而不是“ new”关键字创建原型对象

  9. 9

    使用Object.create()动态创建对象

  10. 10

    使用Object.create()创建XMLHttpRequest对象

  11. 11

    用原型继承Java

  12. 12

    Object.create(Function.prototype)=>创建继承属性的函数

  13. 13

    Object.create(Function.prototype)=>创建继承属性的函数

  14. 14

    object.create和原型之间的关系

  15. 15

    用Ansible运行'docker volume create'吗?

  16. 16

    用Java创建对象(继承和多态)

  17. 17

    使用Object.create进行继承?

  18. 18

    使用Object.assign和Object.create进行继承

  19. 19

    在使用Object.create创建的对象中使用super

  20. 20

    AngularJS使用Object.create创建范围对象

  21. 21

    在使用Object.create创建的对象中使用super

  22. 22

    使用Object.create(),示例应该在其“原型”属性上附加方法吗?

  23. 23

    扩展对象时,为什么要使用Object.create作为原型?

  24. 24

    用Object.defineProperty定义的属性的Javascript继承

  25. 25

    使用Object.create()和Object.assign()创建对象之间有什么区别?

  26. 26

    Object.prototype是对象,而原型是某种原因吗?

  27. 27

    Object.prototype是对象,而原型是某种原因吗?

  28. 28

    用JavaScript安全地继承原型

  29. 29

    用flutter create创建android文件夹

热门标签

归档