原型

原型使用方式:

var Calculator = function (decimalDigits, tax) {
            this.number=number; 
       this.tax = tax;
};

通过给Calculator对象的prototype属性赋值,来设定Calculator对象的原型。

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

            subtract: function (x, y) {
                return x - y;
           }
   };
 var calculator = new Calculator();
 conlose.log(calculator.add(1,3));//4

上面使用原型的时候,有一个限制就是一次性设置了原型对象,我们再来说一下如何设置原型的每个属性。

var Calculate = function () {
//为每一个实力都声明一个数字
this.number = 2; 
}; 
Calculator.prototype .add=function(x, y){
 return x + y; 
}; 
Calculator.prototype .subtract=function(x, y){
 return x - y;
 };

先声明了一个Calculate对象,在构造函数里面初始化一个number属性,然后在原型属性里面设置了2个函数。

var Calculator = function () {
    //为每个实例都声明一个数字
    this.numbers= 5;
};
        
Calculator.prototype = new Calculate();
我们可以看到Calculator的原型是指向到Calculate的一个实例上,目的是让Calculator集成它的add(x,y)和subtract(x,y)这2个函数。
var calc = new Calculator();
alert(calc.add(1, 1));
//Calculate里声明的number属性,在 Calculator里是可以访问到的
alert(calc.number); //2

如果不想让Calculator访问Calculate的构造函数里声明的属性值number,可以将Calculate的原型赋给Calculator的原型,这样你在Calculator的实例上就访问不到那个number值了。

var Calculator = function () {
    this.tax= 5;
};

Calculator.prototype = Calculate.prototype;

var calc = new Calculator();
alert(calc.add(1, 1));//2
alert(calc.number);//undefined
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!