千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  应聘面试  >  html5面试题  > 如何实现继承

如何实现继承

来源:千锋教育
发布人:syq
时间: 2022-11-18 16:45:39 1668761139

  - 对于JavaScript来说,继承有两个要点:

  - 复用父构造函数中的代码 - 复用父原型中的代码第一种实现复用父构造函数中的代码,我们可以考虑调用父构造函数并将 this 绑定到子构造函数。

  - 第一种方法:复用父原型中的代码,我们只需改变原型链即可。将子构造函数的原型对象的 proto 属性指向父构造函数的原型对象。

如何实现继承

  - 第二种实现:使用 new 操作符来替代直接使用 proto 属性来改变原型链。

  - 第三种实现:使用一个空构造函数来作为中介函数,这样就不会将构造函数中的属性混到 prototype 中 function A(x, y) { this.x = x this.y = y } A.prototype.run = function () { } // 寄生继承 二者一起使用 function B(x, y) { A.call(this, x, y) // 借用继承 } B.prototype = new A() // 原型继承 // 组合继承 Function.prototype.extends = function (superClass) { function F() { } F.prototype = superClass.prototype if (superClass.prototype.constructor !== superClass) { Object.defineProperty(superClass.prototype, 'constructor', { value: superClass }) } let proto = this.prototype this.prototype = new F() let names = Reflect.ownKeys(proto) for (let i = 0; i < names.length; i++) { let desc = Object.getOwnPropertyDescriptor(proto, names[i]) Object.defineProperty(this.prototypr, name[i], desc) } this.prototype.super = function (arg) { superClass.apply(this, arg) } this.prototype.supers = superClass.prototype }

  - 第四种实现:es6类的继承extends。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT