2014-09-11 59 views

回答

2

它对性能没有帮助。它有助于混淆。 this自动重新分配很多。如果你想记住什么是this,你可以将它分配给其他东西,传统上me,selfthat。或者您使用bind。它也有助于压缩,因为me可以压缩为单字母变量,但只有this是神奇的,不能重命名。

+0

+1因为它有助于混淆。 'var me = this'是我的宠物,而不是有人将自己的头撞向计算机2个小时,因为在'me!== this'的特殊情况下,他们可能会重构一些重复的代码并减少这种方式缩小了尺寸。 – pllee 2014-09-11 17:12:35

3

它不会在服务表现帮助,但是当被调用的函数在不同的范围内,你仍然有指针的预期目标

function someFunc() { 
    var me = this; 
    someElement.on("click", function() { 
     console.log(me); 
     console.log(this); 
    }); 
}; 

时,这是记录在控制台将显示函数的调用者。在我登录的情况下,它会显示被点击的元素。

+0

也许你可以举一个例子来解释代码吗? – Andy 2014-09-11 09:12:25

+1

这是'var me = this'的恰当用例,但仅仅为了清楚这个原因,Ext代码库不会执行'var me = this'。他们这样做是为了帮助缩小,大部分时间完成“我”并不用于封闭。 – pllee 2014-09-11 17:16:49

+0

有趣的是,我不知道它被用来帮助缩小。从来没有这样想过。谢谢 – Enermis 2014-09-11 17:31:15

0

这不是性能相关的。但是通过这种方式,它声明了一个var,可以在这个“Closure”中被其他成员访问。注意到其他成员的“这个”不是由定义上下文决定的,“this”是谁调用函数的人。相反,变体范围总是由定义上下文决定的。

+0

更像是评论而不是回答。 – 2014-09-11 09:34:05

相关问题