【发布时间】:2023-03-15 15:53:01
【问题描述】:
我目前将脚本所需的所有元素都缓存在一个类似于此的全局对象中:
var MainObject={
$El1 : $('#element1'),
$El2 : $('#element2')
};
在我的方法中,我可以直接访问对象。
method1:function(){
MainObject.$El1 // DO SOMETHING WITH THIS ELEMENT
}, ...
所以,我有 2 个问题。
我听说局部变量是最快的。像这样写我的方法会更好吗?
method1:function(){
var $El1=MainObject.$El1;
$El1 // DO SOMETHING WITH THIS ELEMENT
}, ...
如果是这样的话……
如果我的脚本中有 许多 引用这些元素的方法(这些元素很快会变成很多行),那么压缩它们的最佳方法是什么?
method1:function(){
var $El1=MainObject.$El1,
$El2=MainObject.$El1,
$El3=MainObject.$El1,
$El4=MainObject.$El1;
$El1 // DO SOMETHING WITH THIS ELEMENT
},
method2:function(){
var $El1=MainObject.$El1,
$El2=MainObject.$El1,
$El3=MainObject.$El1,
$El4=MainObject.$El1;
$El1 // DO SOMETHING WITH THIS ELEMENT
},
method3:function(){
var $El1=MainObject.$El1,
$El2=MainObject.$El1,
$El3=MainObject.$El1,
$El4=MainObject.$El1;
$El1 // DO SOMETHING WITH THIS ELEMENT
},
谢谢!
【问题讨论】:
-
不,实际上你离正轨很远,这是不可能的:-)
-
什么是不可能的?你能提供更多信息吗?
-
创建一个在不同范围内声明变量的函数。
-
hmmm,那么是否有更好的方法可以在不同的方法中压缩许多变量声明?
-
@Aaron 如果你想提高性能(不是说改进会很重要),请确保使用严格的语言。在严格的语言中,所有嵌套环境都是静态的,这意味着引擎肯定知道
MainObject是一个全局变量,这会导致访问速度更快。
标签: javascript jquery variables scope