组合继承:借用构造函数 和在原型对象上改变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);