2 sd3033539 sd3033539 于 2015.06.09 17:31 提问

在函数中写 this.xx=function 和 var xx =function() 的区别

亲问各位一个问题 JS代码如下
function Test(){
this.add = function(){
alert(1);
}

this.modAdd = function(){
    this.add();
    add(); 
    // 以上两种均无法调用到ADD方法  
    // Uncaught TypeError: this.add is not a function
}

}
var test = new Test()
test.modAdd();

请问我如何才通过 modAdd()方法调用函数内部本身的 add 方法?

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.09 17:34
已采纳
 function Test(){
this.add = function(){
alert(1);
}
var self = this;//定义一个变量指向对象this
this.modAdd = function(){
    self.add();
    // 以上两种均无法调用到ADD方法  
    // Uncaught TypeError: this.add is not a function
}
}
sd3033539
sd3033539 谢谢,我明白您的意思了, 等于在JS 编译过程中, this 刚好指向 TEST函数本身的时候, 将其存起来明白!感谢!
2 年多之前 回复
jimiyg1
jimiyg1 没有太大区别,都不能调用ADD方法。
2 年多之前 回复
longli1990
longli1990   2015.06.09 19:35

脚本会优先加载function xx(){}、变量方式声明则按顺序。这也是一个编码习惯问题。一船的应用中区别不大。

Csdn user default icon
上传中...
上传图片
插入图片