gpt4 book ai didi

javascript - 应该有一个[道场]让我头晕目眩吗?

转载 作者:行者123 更新时间:2023-12-02 16:14:04 27 4
gpt4 key购买 nike

我正在使用一些自定义的 Dojo 小部件,但一直感觉我是众所周知的柔术 Actor ,通过在他们的头上伸手两次来抓耳。由于某种原因,我对 dojo.hitch() 的使用感觉不正确。

这是有效的:

myObject = {
one: function() {
promise = new Deferred();
promise.then(dojo.hitch(this, function() { this.two(); }));
},
two: function() {
// Func 2 stuff
}
}
myObject.one();

...但看起来应该更简单。

显然 promise.then(this.two); 会导致 Func 2 过早关闭,但是 dojo.hitch(...) 的胡言乱语正如我所言一直这样做似乎有点过分了。

this 方法链接到同一对象中其他位置的 .then() 函数的最简单或最正确的方法是什么?

最佳答案

dojo.hitch(this, function () { this.two(); })) 绝对可以通过多种方式进行简化。

最字面的简化是dojo.hitch(this, this.two)

这与上面的效果相同,只是少了一个函数定义,而是将 two 函数直接传递给 hitch。 (this.two 仅引用该函数,但不会执行该函数,因为引用后面没有括号。)

更简洁的简化是dojo.hitch(this, 'two')

这在技术上与前两个略有不同,因为它实现了后期绑定(bind),因为在调用生成的函数时将查找 two,而在前两个示例中,它一旦调用 hitch 来生成函数,就会被查找。

hitch and partial tutorial可能也会有帮助。

关于javascript - 应该有一个[道场]让我头晕目眩吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29847133/

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