码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 4种继承方式

时间:2016-01-03 15:04:04      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

//1.对象冒充

function ClassA(sColor) {
    this.color = sColor;
    this.sayColor = function() {
        alert(this.color);
    };
}

function ClassB(sColor) {
    this.newMethod = ClassA;
    this.newMethod(sColor);
    delete this.newMethod;
}

var objA = new ClassA("red");
var objB = new ClassB("blue");
objA.sayColor();
objB.sayColor();

// 2.Call()方法

function ClassA(sColor) {
    this.color = sColor;
    this.sayColor = function() {
        alert(this.color);
    };
}

function ClassB(sColor) {
    ClassA.call(this, sColor);
}

var objB = new ClassB("yellow");
var objA = new ClassA("red");
objA.sayColor();
objB.sayColor();

// 3. apply()方法

function ClassA(sColor) {
    this.color = sColor;
    this.sayColor = function() {
        alert(this.color);
    };
}

function ClassB(sColor) {
    ClassA.apply(this, arguments);
}

var objB = new ClassB("black");
objB.sayColor();

// 4. 原型链

function ClassA() {
}

ClassA.prototype.color = "red";
ClassA.prototype.sayColor = function() {
    alert(this.color);
};

function ClassB() {
}

ClassB.prototype = new ClassA();

var objA = new ClassA();
var objB = new ClassB();
objB.color = "green";
objB.sayColor();

 

JavaScript 4种继承方式

标签:

原文地址:http://www.cnblogs.com/learnhow/p/5096323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!