gpt4 book ai didi

javascript - 对象字面量方法的范围

转载 作者:行者123 更新时间:2023-11-30 08:01:45 25 4
gpt4 key购买 nike

我目前正在做一些关于 JS 中的作用域和提升的实验。这里有两个例子,它们以不同的方式让我感到困惑。首先,我将一个匿名函数分配给一个名为 parent 的变量。显然返回的子函数可以访问它的外部函数作用域,因此它可以访问文本变量。这很清楚也很容易。这是代码..

var parent = function() {
var text = 'i can access the container';
return function() {
alert(text);
}
}();
parent();

后来我想返回一个对象而不是一个有方法的函数。这个方法不直接在立即调用函数的主体中,而是在返回的对象中定义。但它可以访问名为 private 的变量它包含一个字符串值。为什么这个变量在这个对象文字方法的范围内??

var parent = (function() {
var text = 'private variable';
return {
prop: 'i am the property',
method: function() {
alert('i can access ' + text);
}
}
})();
parent.method();

最佳答案

在 JavaScript 中,对象文字不会创建新范围,只有函数会创建。因此,在 IIFE 中声明的所有变量都将可用于对象字面量中的 method 函数。

关于javascript - 对象字面量方法的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26447570/

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