JS原型链学习笔记

Animal-Dog-jiwawa 例子

“Animal拥有name属性和laugh方法
Dog 继承 Animal 
jiwawa(吉娃娃)是Dog 的实例”

各种失败的尝试:

1,错误,dog只是Animal的实例,不是继承自它的后嗣

1 function Animal (name){
2     this.name=name;
3     this.laugh=function(){return "Haha"};
4 }
5 var dog = new Animal("dog") ;
6 console.log(dog.name);
7 dog.laugh();

2, 错误,把Dog的prototype给了Animal

1 function  Animal(name){
2    this.name=name;
3    this.laugh = function(){return "Haha"};}
4 var Dog=new Object();
5 var Dog = Object.create(Animal);   
6 //把Dog的prototype给了Animal
7 
8 var jiwawa = new Dog("ss");
9 jiwawa.laugh()

3,写法错误 Dog.prototype= new Animal(); 

function  Animal(name){
   this.name=name;
   this.laugh = function(){return "Haha"};}
var Dog=new Object();
Dog.prototype= Animal;   
//写法错误 Dog.prototype= new Animal(); 

var jiwawa = new Dog("ss");
jiwawa.laugh()

4,自有属性不要放进原型中

function  Animal(){}
   Animal.prototype.name="sth";   //自有属性不要放进原型中
   Animal.prototype.laugh = function(){return "Haha"};

function Dog (){};
Dog.prototype= Animal.prototype
var jiwawa = new Dog();
jiwawa.laugh();

最后代码: 

function Animal(name){
    this.name=name;
}
Animal.prototype = {
    laugh : function(){return "haha"}  
}
function Dog(name){
    Animal.call(this,name);  
}
Dog.prototype=new Animal(); 
var Jiwawa = new Dog("jiji");
Jiwawa.laugh();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值