prototype就是在给对象添加新的成员属性和方法。
如果觉得构造函数中的属性,或者方法定义的太少了,在某个阶段想添加自己的方法。那么可以使用prototype来实现
<script type="text/javascript">
function fun(){
this.a = 1;
this.b = 2;
}
fun.prototype.fun2 = function(){
var obj = this;
//obj.c = 1;
//alert(this.c);
var c;
var fun3 = function(){
if(obj.a > 10){
window.clearInterval(c);
}
alert(obj.a++);
}
c = window.setInterval(fun3,200);
alert('good luck');
}
function fun1(){
var obj = new fun();
obj.fun2();
alert('other');
}
window.onload = fun1;
</script>
fun2这是一个函数,属于由var obj = new fun()创建的对象中的方法。 具体谈论下fun.prototype.fun2 中的实现。var obj 引用的是调用fun2的对象。在代码注释的地方,可以通过obj.c的形式创建一个新的对象的成员属性。
接下来需要注意的地方: c = window.setInterval(fun3,200); 只调用一次,执行后,执行alert("good luck"); 并判断是否经过了200毫秒。如果没有就返回到fun1()执行alert("other");,其实js一直在判断是否经过200毫秒,如果到了,就执行fun3(). 每隔200毫秒执行fun3()函数。这里用一个局部变量c记录了setInterval()的值,而clearInterval(c)的参数需要这个c值才能停止对fun3的间断性的调用。