js高级——原型对象继承的实现
来源:互联网 发布:食品安全网络培训 编辑:程序博客网 时间:2024/05/20 19:31
1、原型继承:利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承
2、原型继承的写法
(1)给原型对象中添加成员(通过对象的动态特性,其实不是严格意义上的继承)
functionPerson(name,age){
this.name= name;
this.age= age;
}
Person.prototype.sayHello= function(){
console.log("sayHello()");
};
varp = new Person("张学友",18);
p.sayHello();//通过原型去添加sayHello()方法
//这里的p对象就继承了原型对象
就是说原来这个对象里面没有某个方法/属性,通过上面这种方式去添加成员。对象继承原型,然后原型里面新增方法,那么这个对象里面就有这么一个方法
(2)直接替换原型对象:其实原理还是对象继承原型(虽然可以实现原型继承,但是很可能原有原型中的成员会丢失)
functionPerson(name,age){
this.name= name;
this.age= age;
}
varparent = { //让p对象继承parent对象
sayHello:function(){
console.log("你好");
}
};
Person.prototype= parent; //把parent变成构造函数的原型就可以让p对象去继承parent对象了
varp = new Person("张学友",18);
p.sayHello();
(3)利用混入的方式给原型对象添加成员(还是对象继承原型)
functionPerson(name,age){
this.name= name;
this.age= age;
}
varparent = {
sayHello:function(){
console.log("你好呀");
}
};
for(vark in parent){
Person.prototype[k] = parent[k];//因为是要给原型添加这个sayHello()方法
}
varp = new Person("张学友",18);
p.sayHello();
阅读全文