gpt4 book ai didi

javascript - JavaScript 中的链式函数

转载 作者:搜寻专家 更新时间:2023-11-01 00:49:34 24 4
gpt4 key购买 nike

有没有一种方法可以在 JavaScript 中链接函数,因此当调用链中的最后一个函数时,我们会考虑指定的链中的所有函数。基本上我想做的是同一件事express-validator做:像这样:

check('password').passwordValidator().optional();

我想打电话

check('password').passwordValidator();

check('password').passwordValidator().optional();

最佳答案

所以你正在寻找一种 builder pattern ?你可以这样做:

class Foo {
_passwordValidator = false;
_optional = false;

passwordValidator() {
this._passwordValidator = true;
return this;
}
optional() {
this._optional = true;
return this;
}

doThing() {
if (this._optional) { /* ... */ }
if (this._passwordValidator) { /* ... */ }
}
}

const foo = new Foo().passwordValidator().optional();

foo.doThing();

编辑:为了更直接地回答您的问题,没有办法等到当前的方法调用链完成后再做某事;您必须在示例中调用类似 doThing() 的方法来表明您现在确实想做这件事。

关于javascript - JavaScript 中的链式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54137801/

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