js继承方式

实现继承有两种常见方式:

混合式继承

最简单的继承就是将别的对象的属性强加到我身上,那么我就有这个成员了。

混合式继承的简单描述:

function Person() {};

Person.prototype.extend = function ( o ) {

for ( var k in o ) {

this[ k ] = o[ k ];

}

};

Person.prototype.extend({

run: function () { console.log( '我能跑了' ); },

eat: function () { console.log( '我可以吃了' ); },

sayHello: function () { console.log( '我吃饱了' ); }

});


原型继承

利用原型也可以实现继承,不需要在我身上添加任何成员,只要原型有了我就有了。


借用构造函数继承

这种技术的基本思想相当简单,即在子类型构造函数的内部调用超类型构造函数,而函数只不过是在特定环境中执行代码的对象,因此通过使用apply()和call()方法也可以在(将来)新创建的对象上执行构造函数

function Person ( name, age, gender ) {

this.name = name;

this.age = age;

this.gender = gender;

}

//需要提供一个 Student 的构造函数创建学生对象

//学生也应该有 name, age, gender, 同时还需要有 course 课程

function Student ( name, age, gender, course ) {

Person.call( this, name, age, gender );

this.course = course;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 引言:前端小白一枚,此文集用于个人前端知识点总结,记录实际项目开发过程中踩过的抗。 一点一滴,汇聚成河! JS常用...
    Xxx子韵阅读 180评论 0 1
  • 借用构造函数继承 原型链式继承(借用原型链实现继承) 组合式继承 组合式继承优化1 组合式继承优化2 ES6中继承...
    lxt410725阅读 309评论 0 1
  • 关于js继承的文章一直以来是数不胜数,每隔一段时间就会复习一下,感觉明白了,但是过段时间又忘记了。有人说ES6的c...
    web_柚子小记阅读 8,444评论 0 15
  • 一.原型链### 原型链的基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。每一个构造函数都有一个原...
    Devour_z阅读 212评论 0 0
  • 继承 一、混入式继承 二、原型继承 利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承,这种实现继承的...
    magic_pill阅读 1,081评论 0 3