gpt4 book ai didi

javascript - 有没有办法用箭头函数实现方法链?

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

我正在尝试链接方法,并意识到在我的示例中事情不起作用。

var object = {
method1: () => {
console.log('method1');
},
method2: () => {
console.log('method2');
}
};

object.method1(); // works fine
object.method2(); // works fine

object.method1().method2(); // merp

我知道箭头函数没有自己的 this 上下文,因此上面发生的情况是默认设置 window 上下文,并且当第二种方法尝试时触发时,它会失败,因为它尝试在 window 对象上查找 method2 (如果这是对正在发生的情况的错误解释,请纠正我)和 in order to achieve method chaining you have to return this所以自然地,这是一个问题。

我知道简单的解决方案很简单,在上面的情况下使用 function() 而不是箭头函数,但我想知道是否有一种方法可以使用箭头函数实现方法链接,或者是这样根本不可能?

我读过的相关问题:Arrow function vs function declaration / expressions: Are they equivalent / exchangeable?

最佳答案

也许您可以将object作为第一个参数传递给method1,效果很好。但它不太好。

var object = {
method1: (a: object) => {
console.log('method1');
return a;
},
method2: () => {
console.log('method2');
}
};


object.method1(object).method2(); // merp

关于javascript - 有没有办法用箭头函数实现方法链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46885581/

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