2

I normally do:

var x; 
x = new Slider({
    'dragstart' : function(e,ui){
        // blablabla
        x.addClass('being-dragged'); // using X here.
        // blablabla 
    }
});

Instead, should I be confident to do

var x = new Slider({
    'dragstart' : function(e,ui){
        // blablabla
        x.addClass('being-dragged'); // using X here.
        // blablabla 
    }
});

The way I see things, x doesn't exist in the local scope when that function is being constructed, so I keep worrying it might pick another x from global, window or wherever it finds it.

4

1 回答 1

1

x构造该函数时,本地范围内不存在

dragstart函数在被调用之前不会被“构造”。如果xundefined在该调用时,它将失败。那时唯一的方法x是从构造函数调用函数(在这种情况下,构造函数没有返回实例,因此仍然具有其默认值,即隐式)。undefineddragstartSliderxundefined

否则,当dragstart被调用时,对的引用x将按照您的预期解析为x外部范围内的。

于 2013-10-24T08:16:35.133 回答