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,表明该对象也是动物