javascript的构造函数和原型

要用JavaScript写出面向对象的代码,或者说组织代码的方式使用面向对象方式,首先需要理解js的“构造函数+原型”。

构造函数 + 原型:

a、用构造函数来定义类属性。

 

 

b、用原型方式来定义类的方法

 

 

 

 

/**  
 * 定义一个类:动物  
 * 构造函数方式
 */ 
function Animal(name) {  
    this.name = name;  
} 
//原型方式
Animal.prototype.setName =function(name) {  
     this.name = name;
}  

/**  
 * 子类:老鼠  
 */ 
function Mouse(name) {
    //1. 调用父类的构造函数,复制父类的属性 
    Animal.call(this, name);

    this.name = name;
}

//2. 继承父类父类的方法
Mouse.prototype = new Animal(); 
//3. 需要修正构造函数的锚点,因为当前的锚点指向了父类
Mouse.prototype.constructor = Animal;
//新建老鼠类自身的吱吱叫方法
Mouse.prototype.squeak = function(){};

//新建一个对象:老鼠
var mouse = new Mouse('老鼠');
console.log(mouse.name); //继承的属性  
console.log(mouse.setName); //继承的方法  
console.log(mouse.squeak); //自有方法 

//继承测试
console.log(mouse instanceof Mouse); //true,表明该对象是老鼠
console.log(mouse instanceof Animal); //true,表明该对象也是动物

 

posted @ 2011-08-23 16:05  郎涛  阅读(423)  评论(0编辑  收藏  举报