0
var me = null;
var testFn = (function() {
    me = this;
    return {
        me1: me,
        fn1 : function() {
           me = this;
             return {   
                    me2 : me,
                    fn2 : function() {
                        me = this;
                        return {
                            me3: me
                        }
                    }
                }        
        }
    }
})();

或者:

var testFn = (function() {
    var me = this;
    return {
        me1: me,
        fn1 : function() {
           var me = this;
             return {   
                    me2 : me,
                    fn2 : function() {
                        var me = this;
                        return {
                            me3: me
                        }
                    }
                }        
        }
    }
})();

在上面给出的两个段之间,哪一个是引用的最佳方式this。有没有其他最好的方法,请指教。

谢谢.....

4

2 回答 2

3

我建议使用第二种方法,因为 me 是在闭包内声明的,因此 iot 不会污染不需要的上下文。我也属于哪个语境也更清楚了。

于 2012-04-25T14:08:17.517 回答
1

我更喜欢第二个,因为它在 is 时被销毁this,这更有意义(它们在同一范围内)。

不完全相关,但大多数人称变量为that:例如var that = this;

于 2012-04-25T14:09:03.613 回答