javascript中的继承

转载 2012年03月21日 11:11:16

一)对象冒充方式

function Father(username) {
    this.username = username;
    this.sayName = function() {
        alert(this.username);
    };
}

function Son(username, password) {
    this.method = Father;
    this.username(username);
    delete this.method;// 关键

    this.password = password;
    this.sayPassword = function() {
        alert(this.password);
    };
}

var father = new Father('papa');
var son = new Son('bab', '123');
father.sayName();
son.sayName();
son.sayPassword();

二)Call方法方式:call方法是function对象中的方法,因此我们定义的每个函数都有该方法,通过函数名来调用该方法,call方法的第一个参数会被传递给函数中的this,从第二个参数开始,逐一赋值给函数中的参数

function Father(username) {
    this.username = username;
    this.sayName = function() {
        alert(this.username);
    };
}

function Son(username, password) {
    Father.call(this, username);
    this.password = password;
    this.sayPassword = function() {
        alert(this.password);
    };
}

三)Apply方法方式

function Father(username) {
    this.username = username;
    this.sayName = function() {
        alert(this.username);
    };
}

function Son(username, password) {
    Father.apply(this, new Array(username));
    this.password = password;
    this.sayPassword = function() {
        alert(this.password);
    };
}

四)原型链方式

function Father() {
}
Father.prototype.hello = "hello";
Father.prototype.sayHello = function() {
    alert(this.hello);
};

function Son() {
}
Son.prototype = new Father();
Son.prototype.world = "world";
Son.prototype.sayWorld = function() {
    alert(this.world);
};

var son = new Son();
son.sayHello();
son.sayWorld();

五)混合方式(推荐)

function Father(hello) {
    this.hello = hello;
}
Father.prototype.sayHello = function() {
    alert(this.hello);
};

function Son(hello, world) {
    Father.call(this, hello);
    this.world = world;
}
Son.prototype = new Father();
Son.prototype.sayWorld = function() {
    alert(this.world);
};

var son = new Son('hello', 'world');
son.sayHello();
son.sayWorld();



相关文章推荐

理解Javascript原型继承原理

  • 2016年11月23日 22:00
  • 246KB
  • 下载

javascript原型继承代码案例

  • 2015年04月11日 13:02
  • 2KB
  • 下载

从零开始学_JavaScript_系列(18)——dojo(7)(dojo中类的继承)

关于声明及封装一个类,请查阅我的上一篇博客: http://blog.csdn.net/qq20004604/article/details/51456809 (72)继承...

js javascript zInherit 对象 继承

  • 2012年05月10日 14:35
  • 15KB
  • 下载

JavaScript五种继承方式

  • 2013年03月09日 23:44
  • 3KB
  • 下载

JavaScript中的原型(链)&继承(一)

Zee有话说^_^,下面的内容大部分摘自《Professional JavaScript for Web Developers (3rd edition )》和《JavaScript语言精粹与编...

Javascript中的封装与继承

  • 2012年09月29日 13:34
  • 26KB
  • 下载

JavaScript:原型链、继承

(1)理解原型对象     1).只要创建了一个新函数,就会为该函数创建一个prototype属性,这个属性指向函数的原型对象;     2).所有原型对象都会自动获得一个constructor(构造...

javascript控件开发之继承关系

  • 2014年04月08日 00:15
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript中的继承
举报原因:
原因补充:

(最多只允许输入30个字)