gpt4 book ai didi

javascript - 如何确保 'this' 引用对象文字中的对象文字?

转载 作者:行者123 更新时间:2023-11-29 15:42:53 24 4
gpt4 key购买 nike

这是一个简单的 fiddle .

我想确保 obj 中的 thisobj 以便我可以从 调用 a >b。我在另一个函数中使用 obj,当我在 b 中放置一个断点时,我发现 this 是窗口,而不是 对象

var obj = {
a: function() { return 2 },
b: function() { return 5+ this.a() },
}

$('#hey').text(obj.b());

obj 是在许多其他类使用的文件中定义的,因此在使用 obj 的站点定义任何一种方法都没有意义。

从@Kamil 的回答来看,我可能需要将a 作为参数传递给b。如:

var user = obj.b(obj.a);

var obj = {
a: function() { return 2 },
b: function(func) { return 5 + func() },
}

编辑 下面的工作,但它很乱。有没有更优雅的方式?

我终于改变了

startingSMA = this.simple_moving_average(startingSMA, period, accessor)

以下内容:

startingSMA = (function(startingSMA, period, accessor) {
return this.simple_moving_average(startingSMA, period, accessor)
}).apply(Statistics, [startingSMA, period, accessor]);

最佳答案

我不知道为什么还没有建议 - 使用 bind:

var obj = {};
obj.b = (function () {
// "this" will always be "obj"
}).bind(obj);

引用:

关于javascript - 如何确保 'this' 引用对象文字中的对象文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16514748/

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