我通常会:
var x;
x = new Slider({
'dragstart' : function(e,ui){
// blablabla
x.addClass('being-dragged'); // using X here.
// blablabla
}
});
相反,我应该有信心去做吗
var x = new Slider({
'dragstart' : function(e,ui){
// blablabla
x.addClass('being-dragged'); // using X here.
// blablabla
}
});
我看东西的方式,构造函数时本地范围中不存在
x
,所以我一直担心它可能会从全局,窗口或任何找到它的地方选择另一个x
。 最佳答案
构造该函数时,x
在本地范围中不存在
在调用之前,dragstart
函数不会被“构造”。如果在调用时x
是undefined
,它将失败。当时x
成为undefined
的唯一方法是,如果dragstart
函数是从Slider
构造函数调用的(在这种情况下,构造函数没有返回该实例,因此x
仍具有其默认值)这是隐式undefined
)。
否则,调用dragstart
时,对x
的引用将按您期望的那样解析为外部作用域中的x
。