gpt4 book ai didi

javascript - 对象定义范围

转载 作者:行者123 更新时间:2023-12-02 19:21:50 25 4
gpt4 key购买 nike

在 JavaScript 中,当你定义一个对象字面量时,该对象存在于哪里?那是在该函数的激活对象中吗?我询问此问题是为了了解此问题或任何其他影响之间是否存在任何技术差异:

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

})();

或者:

var global = {};

最佳答案

对象没有任何作用域,因此在何处创建它没有任何区别。

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

var global;

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

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

对于在作用域之外创建的对象也同样适用,只要该方法是在作用域内创建的;

var global = {};

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

关于javascript - 对象定义范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com