js高级——原型对象继承的实现

本文介绍了JavaScript中通过原型实现继承的三种方法:直接给原型添加成员、替换原型对象以及利用混入方式给原型添加成员,并提供了具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、原型继承:利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承
2、原型继承的写法
(1)给原型对象中添加成员(通过对象的动态特性,其实不是严格意义上的继承)
function Person(name,age){
    this.name = name;
    this.age = age;
}

Person.prototype.sayHello = function(){
    console.log("sayHello()");
};

var p = new Person("张学友",18);
p.sayHello(); //通过原型去添加sayHello()方法
//这里的p对象就继承了原型对象

就是说原来这个对象里面没有某个方法/属性,通过上面这种方式去添加成员。对象继承原型,然后原型里面新增方法,那么这个对象里面就有这么一个方法


(2)直接替换原型对象:其实原理还是对象继承原型(虽然可以实现原型继承,但是很可能原有原型中的成员会丢失)
function Person(name,age){
    this.name = name;
    this.age = age;
}

var parent = { //让p对象继承parent对象
    sayHello:function(){
        console.log("你好");
    }
    };
Person.prototype = parent;                //把parent变成构造函数的原型就可以让p对象去继承parent对象了

var p = new Person("张学友",18);
p.sayHello();



(3)利用混入的方式给原型对象添加成员(还是对象继承原型)
function Person(name,age){
    this.name = name;
    this.age = age;
}

var parent = {
    sayHello:function(){
        console.log("你好呀");
    }
};
for(var k in parent){
    Person.prototype[k] = parent[k]; //因为是要给原型添加这个sayHello()方法
}

var p = new Person("张学友",18);
p.sayHello();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值