<script>
//拷贝继承:把一个对象中的属性或者方法直接复制到另一个对象中
//下面是简单的例子
/* var jk = {
name : "我好帅啊!",
age : 20,
sex : "男",
eat:function () {
console.log("今晚吃烤羊腿!");
}
};
//改变了地址的指向,没有在堆中开辟空间
var kl = jk;
console.log(kl.name,kl.age,kl.sex);
kl.eat();*/
//和原型对象结合起来
function Person() {
}
Person.prototype.age=10;
Person.prototype.name="小明";
Person.prototype.sex="女";
Person.prototype.play = function () {
console.log("还年轻!想玩抓紧时间玩。");
};
//在Person的构造函数中有原型prototype,prototye就是一个对象,在这个
//对象中有age,name,sex等等的这些就是它里面的属性,play是方法
var obj2 = {};
//这里因为{}是一个对象,所以在堆中两个都开了空间,
// 把Person中的拷贝到了obj2中,各自的指向并没有改变(浅拷贝)
for (var key in Person.prototype){
obj2[key]=Person.prototype[key];
}
console.log(obj2);
obj2.play();
</script>
//拷贝继承:把一个对象中的属性或者方法直接复制到另一个对象中
//下面是简单的例子
/* var jk = {
name : "我好帅啊!",
age : 20,
sex : "男",
eat:function () {
console.log("今晚吃烤羊腿!");
}
};
//改变了地址的指向,没有在堆中开辟空间
var kl = jk;
console.log(kl.name,kl.age,kl.sex);
kl.eat();*/
//和原型对象结合起来
function Person() {
}
Person.prototype.age=10;
Person.prototype.name="小明";
Person.prototype.sex="女";
Person.prototype.play = function () {
console.log("还年轻!想玩抓紧时间玩。");
};
//在Person的构造函数中有原型prototype,prototye就是一个对象,在这个
//对象中有age,name,sex等等的这些就是它里面的属性,play是方法
var obj2 = {};
//这里因为{}是一个对象,所以在堆中两个都开了空间,
// 把Person中的拷贝到了obj2中,各自的指向并没有改变(浅拷贝)
for (var key in Person.prototype){
obj2[key]=Person.prototype[key];
}
console.log(obj2);
obj2.play();
</script>