在javascript中定义对象文字时,该对象存在于何处?那是在该功能的激活对象中吗?我要求知道这个或任何其他含义之间是否存在任何技术差异:
var global;
(function(){
global={};
})();
或:
var global = {};
答案 0 :(得分:1)
两个版本都有完全相同的结果,一个空的全局对象。所以不,没有技术差异。
答案 1 :(得分:1)
对象没有任何范围,因此在创建对象时没有任何区别。
但是,如果对象具有方法,则可以使用创建它们的范围的局部变量:
var global;
(function(){
var local = 42;
global = {
aMethod: function() { alert(local); }
};
})();
局部变量local
仅存在于该范围内,但是对象中的方法可以使用该变量,因为该方法是在范围内创建的。
同样适用于在作用域外创建的对象,只要该方法是在作用域内创建的;
var global = {};
(function(){
var local = 42;
global.aMethod = function() { alert(local); }
})();