在javascript中定义对象文字时,该对象存在于何处? 那是在该功能的激活对象中吗? 我要求知道这个或任何其他影响之间是否有任何技术差异:

var global;
(function(){
  global={};

})();

要么:

var global = {};

#1楼 票数:1

两个版本都具有完全相同的结果,一个空的全局对象。 所以不,没有技术差异。

#2楼 票数:1 已采纳

对象没有任何范围,因此在创建它时不会产生任何差异。

但是,如果对象具有方法,则可以使用创建它们的范围的局部变量:

var global;

(function(){
  var local = 42;
  global = {
    aMethod: function() { alert(local); }
  };
})();

局部变量local仅存在于该范围内,但是该对象中的方法可以使用该变量,因为该方法是在范围内创建的。

只要在范围内创建方法,同样适用于在范围外创建的对象;

var global = {};

(function(){
  var local = 42;
  global.aMethod = function() { alert(local); }
})();

  ask by Aljoša Srebotnjak translate from so

未解决问题?本站智能推荐:

3回复

使用隔离范围的对象对象定义自定义指令

当我循环访问它们时,我的控制器中有人员类型的对象列表,它可以正常工作并从列表中显示所有人员的姓名。 我已经定义了一个控制器来以结构化方式显示数据,但是为什么不允许将自定义指令的范围绑定到人员姓名的值,这件作品很好 但是当我尝试将自定义指令的范围绑定到对象的名字时,AngularJS抛出错误
1回复

在子对象中定义函数时“this”的范围

我正在使用有关在另一个类中评估的页脚的自定义选项扩展主干视图。 看起来像: 如您所见,应该可以将属性定义为返回字符串或正常字符串值的函数。 我使用_.result在FooterView中评估以下选项: 但是问题是我无法在上面定义的标签函数中访问EditUserView的this。
3回复

对象未在范围内定义

我正在尝试将信息发送到另一页,但出现此错误。 angular.min.js:107 ReferenceError:未定义layoutTeste 这是我的代码。 vm.layouteste具有值,但是layoutTeste表示未定义。 在我提出的范围内,我错过了什么。
3回复

自定义对象内的范围问题

我认为我有一个范围可见性问题,我无法确切找出:当我记录变量displayatonce我得到了正确的结果,但是当我尝试使用按钮时,却没有得到任何回报。 我也尝试记录this.navbuttons但是我得到的只是一个空集...我真的不明白这段代码有什么问题。
1回复

自定义对象中的可变范围

我需要从功能enableNav访问buttons属性,但我的问题是我不能这样做,因为this引用指向enableNav函数而不是对象本身,如何正确获取buttons ?
2回复

对象范围内的函数调用或定义?

在浏览VueJS时我发现了这篇文章 : 我的问题是 - 什么是render ()和created () - 函数调用? 定义? 别的什么? 究竟发生了什么?
1回复

angularjs中未定义的范围对象

我有一个html文件,我想在其上显示mongoDB的信息。 我想显示mongoDB中的所有消息。 我建立了一个html页面,期望提供信息: 我有那个控制器来做: 我从数据库获得的信息很好。 但是该通知未在文本框中显示,错误是:“ TypeError:无法设置未定义的属性'名称'”。
1回复

如何在本地范围内重新定义对象变量

如何在本地重新定义对象变量? 对于普通变量,我将在函数内部使用let ,但let似乎不适用于对象变量。 有办法吗? 下面的代码显示,我可以使用options.soundFileName = 'audio/60.wav';来全局重新定义变量options.soundFileName = '