js继承的几种方式
博客专区 > Carry-YI 的博客 > 博客详情
js继承的几种方式
Carry-YI 发表于1年前
js继承的几种方式
  • 发表于 1年前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

1、原型继承

"use strict";
/*
* 每一个构造函数都有一个原型对象
* 每一个原型对象都包含一个指向构造函数的指针
* 每一个对象都包含一个指针指向原型对象
* 原型对象==实例对象
* 原型对象就包含一个指针指向原型对象
* 结论:层次递进,就构成了原型链
 */
function GrandFather(){
    this.name = "张三";
}

GrandFather.prototype.getName = function () {
    return this.name;
}

function Parent() {

}

Parent.prototype = new GrandFather();

function Child(){

}

Child.prototype = new Parent();

var child = new Child();
alert(child.getName());

2、构造函数继承

"use strict";
//父子关系,子类的构造函数里调用父类的构造函数
function Parent() {
    this.name = "李四";
    this.age = 12;
}

function Child() {
    Parent.call(this);
}

var child = new Child();
alert(child.name);
alert(child.age);

3、构造函数和原型组合继承

"use strict";
//组合继承(将构造函数和原型链结合在一起)
function Parent() {
    this.name = "李四";
    this.age = 12;
}

Parent.prototype.getName = function(){
    alert(this.name);
}

function Child() {
    Parent.call(this);
}

Child.prototype = new Parent();

var child = new Child();
alert(child.getName());

4、寄生式继承

"use strict";
//寄生式继承
function CreateOther(original){
    var clone = Object(original);
    clone.getName = function () {
        alert(this.name);
    }
    return clone;
}

var person = {
    name:"张三",
    age:"11"
}

var otherPerson = CreateOther(person);
person.getName();

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 6
码字总数 1826
×
Carry-YI
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: