gpt4 book ai didi

javascript - 从另一个对象方法中访问对象属性

转载 作者:行者123 更新时间:2023-11-29 21:00:44 26 4
gpt4 key购买 nike

<分区>

我有一个 Javascript 对象,它存储了一堆方法,还存储了一些变量。在正常情况下,当方法尝试相互访问或变量时,它工作正常,但如果从范围外调用方法(例如,通过另一个回调),它们将不再能够访问变量。

此处的 JSFiddle 示例:http://jsfiddle.net/3Lkuz2Lk/2/

下面是说明问题的示例代码:

    var obj = {
x: null,
func1: function() {
console.log('func1, x is ' + this.x);
},

func2: function() {
console.log("func2");
this.func1();

var func1 = this.func1;
func3(function() {
func1();
});
}
};

function func3(callback) {
console.log("func3");
return callback();
}

obj.func2();

以上代码的输出是:

func2
func1, x is null
func3
func1, x is undefined

我不清楚的是,为什么 func1 第二次调用 x 是未定义的?

如果我需要完成这个(即,无论从哪个上下文中调用它们,都能够访问对象中的方法和变量),我该如何完成?我发现上述方法不干净,因为我需要存储 func1 引用以便调用 func3 时可以使用它,我希望有一种更清洁/更简单的方法。

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