gpt4 book ai didi

javascript - 使用对象范围的变量将函数和变量封装在对象中

转载 作者:行者123 更新时间:2023-11-30 17:29:56 25 4
gpt4 key购买 nike

所以,我想创建一个可以包含函数和变量的对象和包含函数和变量的对象,但是我发现如果有“顶级”变量,由于作用域的原因,它们不能被更深层次的函数访问规则。例如:

var myobj = {
foo: "test",

bar: function() {
return this.foo;
},

baz: {
piz: "test2",
poz: function() {
return this.piz + this.foo;
}
}
}

console.log(myobj.bar());
console.log(myobj.baz.poz());

由于显而易见的原因,第二次调用返回“test2undefined”——this.foo 引用 baz.foo(未定义)而不是 myobj。我如何引用 myobj 以允许变量 foo 在此对象中随处可用?

最佳答案

您可以将您的 poz() 修改为:

poz: function() {
return this.piz + myobj.foo;
}

this 不能引用两个对象。所以我只是使用 myobj.foo

我想,当你在特定行使用它时,你想引用 myobj,那么为什么不使用对象的属性呢?

请注意,您始终可以通过在代码中任何地方引用原始对象的名称来引用任何属性。

关于javascript - 使用对象范围的变量将函数和变量封装在对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23340905/

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