美文网首页
JS继承的相关问题

JS继承的相关问题

作者: 晴天的晴q | 来源:发表于2019-02-27 16:30 被阅读0次

构造函数、原型对象和实例之间的关系?

每个构造函数都有一个 prototype 属性指向原型对象,原型对象中有一个 constructor 属性指向 prototype 属性所在的函数,实例中有一个内部属性 [[Prototype]] (可用__proto__访问)指向原型对象。

ES6 extends 继承做了什么操作?

1. 把子类构造函数的原型(__proto__)指向父类构造函数
2. 把子类实例的原型对象(prototype)的原型(__proto__)指向了父类的原型对象(prototype)
3. 子类构造函数继承了父类构造函数里的属性。使用 super 调用的(ES5 则用 call 或者 apply 调用传参)。

如何设置 __proto__?

new、Object.create 和 Object.setPrototypeOf 可以设置 __proto__。

new 一个对象做了什么?

1. 创建了一个全新的对象
2. 这个对象继承了该构造函数的原型(即__proto__)
3. 构造函数中的 this 变量引用新创建的这个对象
4. 构造函数的属性和方法被加入到 this 引用的对象中
5. 如果构造函数没有返回对象类型 Object(包含 Function、Array、Date、RegExg、Error),那么 new 表达式中的函数调用会自动返回这个新的对象

Object.create(ES5 提供)

Object.create(proto, [propertiesObject]) 方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。它接收两个参数:
第一个参数是新创建对象的原型对象;
第二个参数(可选),若没有指定即为 undefined。要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。

Object.setPrototypeOf(ES6 提供)

Object.setPrototypeOf() 方法设置一个指定的对象的原型(即内部 [[Prototype]]属性)到另一个对象或 null:Object.setPrototypeOf(obj, prototype)。

相关文章

  • JS继承的相关问题

    构造函数、原型对象和实例之间的关系? 每个构造函数都有一个 prototype 属性指向原型对象,原型对象中有一个...

  • JS this_原型链_继承 相关问题

    this 1,apply、call 、bind有什么作用,什么区别 apply/call:调用一个函数,传入函数执...

  • 继承相关问题

    问题11:继承有什么作用? 概念:继承就是子类拥有父类的属性和方法, 作用: 父类中是更加通用的属性和方法,通过继...

  • 继承相关问题

    1、继承有什么作用? 在一个基于类的语言(如Java)中,继承(inheritance)提供两个有用的服务。首先,...

  • JS一些总结

    JS高级总复习 Javascript基础复习 面向对象 把解决问题的重点放在解决问题相关的对象上 封装/继承/多态...

  • JS中基于原型实现继承

    本文不会对于JS中的继承机制进行深入研究,只聊js中基于原型实现继承的方式,如果需要了解JS中的继承机制及其相关背...

  • JS对象继承相关

    propertype 在JavaScript中通过构造函数来构造对象每个函数有他的propertype指向该构造函...

  • JS继承问题

    JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一,那么,我们该如何在JS中实现继承呢? 一、公有私有属性...

  • JavaScript的继承相关问题

    继承有什么作用? 继承可以让子类拥有父类的方法和属性,然后在这个基础上进行方法和属性调用,可以提高代码的复用性和效...

  • 原生JS继承相关概念

    原型链继承 借用构造函数(经典继承) 缺点 :每次new (实例化)都会重现创建一次 组合继承 (结合原型链继承和...

网友评论

      本文标题:JS继承的相关问题

      本文链接:https://www.haomeiwen.com/subject/bcbvyqtx.html