gpt4 book ai didi

javascript - 全局函数表达式如何访问JavaScript中包含函数内部的变量

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

这是一个例子:

function outerFunc(){
//some variable

var x = 10;

Obj = function(){ //Its global function created without var keyword
this.a = x;
}
}

现在,当我在调用 outerFunc 函数后创建 Obj 对象的新实例时。

outerFunc();

myObj = new Obj();

myObj.a; //prints 10

所以我想知道当我将Obj定义为全局构造函数时,它如何读取包含函数私有(private)变量x的值,它仍然可以读取该值。

最佳答案

您无法从外部访问闭包中声明的属性x

在这里,您不会读取私有(private)变量x的值,而是读取您制作并存储到的副本一个

如果您的问题是为什么可以从函数 Obj 内部访问 x :这就是闭包的工作原理:函数可以访问它所在范围的变量被宣布。事实上,这个函数被分配给 Obj 变量并且这个变量是全局变量,这绝对没有改变。

这里有一些补充阅读:the MDN on closures

关于javascript - 全局函数表达式如何访问JavaScript中包含函数内部的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18800782/

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