我正在尝试优化我的程序。我想我理解关闭的基础知识。我对范围链感到困惑。
我知道通常你想要一个低范围(快速访问变量)。
说我有以下对象:
var my_object = (function(){
//private variables
var a_private = 0;
return{ //public
//public variables
a_public : 1,
//public methods
some_public : function(){
debugger;
alert(this.a_public);
alert(a_private);
};
};
})();
我的理解是,如果我在some_public方法中,我可以比公共方法更快地访问私有变量。这是对的吗?
我的困惑来自此的范围级别。
当代码在调试器中停止时,firebug会在 this 关键字中显示公共变量。 此字不在范围级别内。
访问这个有多快?现在我将任何this.properties存储为另一个局部变量,以避免多次访问它。
非常感谢!
答案 0 :(得分:4)
有许多优化Javascript的好方法。
这不是其中之一 搜索范围的成本是分钟。
此外,您误解了this
关键字
this
关键字是每个函数的隐式参数,它可以是全局window
对象,调用函数的实例,也可以是传递给call
或{的第一个参数。 {1}}。
apply
对象将引用普通的Javascript对象;它的属性没有范围。
答案 1 :(得分:2)
首先,您是否已对自己的应用进行了分析,并且知道此代码是否存在瓶颈?
如果您的应用程序花费99.9%的时间来做其他事情,那就没有必要对此进行优化。