gpt4 book ai didi

javascript - 访问 JavaScript 根级对象 THIS 关键字值

转载 作者:行者123 更新时间:2023-11-30 11:44:54 24 4
gpt4 key购买 nike

在下面的基本 JavaScript 对象示例中,我经常如何构建我的 JavaScript 项目。我正在寻求帮助。

在我的 TestApp.init() 函数中,我调用这个函数 this.cache.cacheFuncOne(); 这是另一个在另一个名为缓存

this.cache.cacheFuncOne(); 中,我尝试访问主对象 this.prop1 上的属性,结果未定义。

当我从嵌套在另一个对象中的不深一层的其他函数访问 this.prop1 时,它会按预期工作并显示值。

所以我开始意识到,在 cache{} 对象中,this 关键字与根上的 this 的值不同水平对象。

基于这个简单的演示,我将如何访问下面 cache{} 对象中的根级 this 值?

var TestApp = {
prop1: 'property1',

init: function() {
this.cache.cacheFuncOne();
alert(this.prop1);
},

funcOne: function() {

},

funcTwo: function() {

},

cache: {

cacheFuncOne: function() {
alert(this.prop1);
},
}

}

TestApp.init();

最佳答案

您正在寻找的是 call()apply() .它们都是 Function 的一部分的原型(prototype),它们的第一个参数是将成为函数内部的 this 的对象。

所以在你的情况下,你可以这样做:

// ...
init: function() {
this.cache.cacheFuncOne.call(this);
alert(this.prop1);
}
// ...

另外,如果你使用 ES6,你可以只使用 arrow function .

关于javascript - 访问 JavaScript 根级对象 THIS 关键字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317997/

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