在这里我多次引用JavaScript对象
var myObj = {
method1 : function() {},
method2 : function() {},
method3 : function {},
init : function() {
this.method1();
this.method2();
this.method3();
}
};
是否有任何性能提升,我应该将其存储在变量中吗?喜欢:
init : function() {
var self = this;
self.method1();
self.method2();
self.method3();
}
解决方法:
无需将此引用存储在变量中,除非您需要将该上下文传递给闭包.
这是一个示例,说明您何时可能需要将this指针传递到闭包中,例如元素上的click事件需要引用该指针在事件的外部父上下文中指向的内容:
init : function() {
$('.someElem').click(
(function(self) {
return function() {
self.method1();
self.method2();
self.method3();
}
})(this) // pass "this" into the "self" parameter as an argument
);
}
在您的情况下,您不必要创建一个局部变量,而在确实不需要时为其分配一些内容.这是多余的,并且还会创建不需要的变量.