原型
原型使用方式:
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
如对本文有疑问, 点击进行留言回复!!
JavaScript 好题汇总分享(持续更新,看到好题就写)
XMLHttpRequest 2级 &&进度事件&&JSONP
使用递归原生实现拷贝&&最简单的方法实现深拷贝
网友评论