在编写JavaScript代码时,有时您会将对象this
的引用存储在一个局部变量中,以用于不同的目的(设置适当的作用域,帮助编写混淆代码等)。与that
相比,有些程序员更喜欢对this
使用别名,以明确其意图。其他人使用self
,因为它指向对象本身。我甚至看过me
引用的源代码,它仍然有意义。当然还有其他的。
我应该选择哪一个?有没有使用的惯例,还是仅仅是品味问题。
发布于 2010-04-23 21:40:48
就我个人而言,我使用的是that
,但任何其他明确的东西都可以。
我不会使用self
,因为全局变量/window
-property self
已经作为对window
的引用存在。虽然它是完全无用的(所以没有人会关心你是否在跟踪它),但它稍微增加了愚蠢错误被忽视的风险:
var se1f= this; // misspelled (perniciously). or maybe you just forgot to write line
onclick= function() {
self.foo= 1; // whoops, just wrote to `window`!
};
鉴于:
var that= this;
onclick= function() {
that.foo= 1; // error thrown
};
有点做作,但JavaScript是如此草率,让错误滑动,你真的不想再这样做了。
发布于 2010-04-23 21:42:33
就我个人而言,我正在尝试更好地使变量的意义比“我稍后需要的东西”更有意义。通常,在有些麻烦的情况下需要这些临时变量;可能需要跟踪两层或更多层的临时this
存储。
因此,例如在jQuery设置中,我可能会使用一些东西来记录临时this
存储应该包含的元素类型:
$('form').each(function() {
var $form = $(this);
$form.find('input:checkbox').each(function() {
var $checkbox = $(this);
// ...
});
});
在变量上使用"$“前缀是跟踪对象是否已”jQuery化“的好方法:-)
https://stackoverflow.com/questions/2698831
复制相似问题