gpt4 book ai didi

javascript - 确保 this 引用了该对象

转载 作者:行者123 更新时间:2023-11-28 12:24:45 28 4
gpt4 key购买 nike

我有以下对象:

dog = {
location: {
x: 52.1089,
y: 16.2323
},
f: function(message) {
alert(message + this.location.x);
return;
}
};

现在我需要开始将函数 dog.f 传递到不同上下文中的 API。我的问题是 this 并不总是引用我的对象,而是引用不同的事物,具体取决于它的调用方式。如何访问函数 f 内的 location 等属性?

编辑:我真正想要的只是方法 f 但我不想在每次函数调用时初始化 f 内部的位置,所以我认为一个对象将是最好的主意。这是我的第一次尝试:

var f = function(message) {
var location: {
x: 52.1089,
y: 16.2323
}
alert(message + location.x);
return;
}

但在每次函数调用时初始化位置看起来很浪费。

编辑2:我愿意接受coffeescript解决方案

最佳答案

您可以使用bind method设置方法的上下文:

var func = dog.f.bind(dog);

当您从任何地方调用 func 时,它将具有与调用 dog.f 相同的上下文。

注意:旧版浏览器不支持 bind 方法,例如 IE 8 及更早版本,因此如果您需要支持这些浏览器,则需要“polyfill”。我链接到的文档中有一个。

关于javascript - 确保 this 引用了该对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682468/

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