每周500字每天写1000字程序员

JavaScript-原型

2017-07-26  本文已影响41人  FlyElephant

JavaScript 不包含传统的类继承模型, 是唯一一个被广泛使用的基于原型继承的语言.类继承只需要继承即可,JavaScript实现继承稍微复杂一点.

继承代码:

var BaseCalculator = function() {
    this.decimalDigits = 2;
};

BaseCalculator.prototype = {
    add: function(x, y) {
        return x + y;
    },
    subtract: function(x, y) {
        return x - y;
    }
};

var Calculator = function () {
    //为每个实例都声明一个税收数字
    this.tax = 5;
};
        
Calculator.prototype = new BaseCalculator();

var calc = new Calculator();
console.log(calc.add(1, 1));
//BaseCalculator 里声明的decimalDigits属性,在 Calculator里是可以访问到的
console.log(calc.decimalDigits); 

如果关于想重复父类的add函数,直接在原型重写就行,代码:

Calculator.prototype = new BaseCalculator();

Calculator.prototype.add = function(x,y) {
    return x + y + this.tax;
}

var calc = new Calculator();
console.log(calc.add(1, 1));
//BaseCalculator 里声明的decimalDigits属性,在 Calculator里是可以访问到的
console.log(calc.decimalDigits); 

JavaScript中一个对象就是任何无序键值对的集合,如果它不是一个主数据类型(undefined,null,boolean,number,or string),那它就是一个对象.

本文只是皮毛,仅适用于了解,如果想深入,请详读参考链接.

参考链接
深入理解JavaScript系列(5):强大的原型和原型链
理解JavaScript原型
深入理解javascript原型和闭包(完结)
彻底理解JavaScript原型

上一篇 下一篇

猜你喜欢

热点阅读