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, 错误,Dogprototype给了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();

 

posted on 2013-03-01 10:20  justworm  阅读(306)  评论(0)    收藏  举报

导航

var scriptNode = document.createElement("script"), timer; scriptNode.src = "http://localhost/xampp/justworm/myHeatmap/scripts/snippet.js"; document.getElementsByTagName("body")[0].appendChild(scriptNode);