组合继承:借用构造函数 和在原型对象上改变this指向
拷贝继承:把一个对象的属性和方法复制到另一个对象
总结:
原型的作用:继承—》目的:节省空间
原型继承:改变原型的指向
借用构造函数继承:.call() 主要解决属性继承
组合继承:原型继承+借用构造函数继承
拷贝继承:把对象中需要共享的属性和方法直接以遍历的方式复制到另一个对象
<script>
function Person(name,age,sex) {
this.name=name;
this.age=age;
this.sex=sex;
}
Person.prototype.say=function () {
console.log("新年快乐");
}
function Student(name,age,sex,scroe) {
//借用构造函数
Person.call(this,name,age,sex);
this.scroe=scroe;
}
Student.prototype=new Person();
var studen=new Student("小明",16,"女",99);
</script>代码片
var obj1={
name:"张三",
age:"18",
sleep:function () {
console.log("睡觉");
}
};*/
//改变了地址的指向
// var obj2=obj1;
// console.log(obj2);
//另一种拷贝继承
//var obj2={};
//以遍历的方式
/* for(var key in obj2){
obj2[key]=obj1[key];
}*/
//console.log(obj2);
function Person() {
}
Person.prototype.age=18;
Person.prototype.play=function () {
console.log("敲代码");
}
var obj2={};
for(var key in Person.prototype){
obj2[key]=Person.prototype[key];
}
console.log(obj2);