gpt4 book ai didi

javascript - JS : how to create optionally chainable methods

转载 作者:行者123 更新时间:2023-11-30 08:55:32 25 4
gpt4 key购买 nike

JS新手问题在这里:

假设我有一些简单的字符串操作方法,比如这些愚蠢的例子:

var prepend = function(str) {
return 'foo ' + str
};

var exclaim = function(str) {
return str + '!'
}

现在,我可以像这样使用它们:

var string = prepend('bar'); // 'foo bar'
string = exclaim(string); // 'foo bar!'

但是,我认为如果我也可以,可选,使这些方法可链接,那将是非常好的,所以我也可以做类似的事情:

var string = "foo"
string.prepend().exclaim()

...我的结果仍然是 "foo bar!"

如果我也可以将可选参数传递到这个链中,那就更好了,比如:

var exclaim = function(string,char="!") {
return string + char
};

所以,我的问题是:

  1. 很基础,但我描述的是否正确?可以这样链接的方法叫什么?而且,你把链中上一个方法的返回称为什么,下一个方法将对其进行操作?

  2. 如何将变量设置为链中上一个方法的返回值,或者作为参数提供?

谢谢!

最佳答案

如果你想链接它们,那么你必须将这些方法添加到字符串原型(prototype)中:

String.prototype.prepend = function() {
return 'foo ' + this
};

String.prototype.exclaim = function() {
return this + '!'
}

var s = "".prepend().exclaim();
console.log(s);

DEMO


WRT 可选参数,您可以利用在 JavaScript 中,您可以在不为某些参数传递值的情况下调用方法。那些未传递的参数将在函数中显示为 undefined。由于 null 隐式转换为 undefined,因此通常通过检查这些参数是否为 null 来处理这种情况

var exclaim = function(str, ch) {
if (ch == null){
ch = '!';
}
return string + ch
};

你还会经常看到这样的东西:

var exclaim = function(str, ch) {
ch = ch || '!';
return string + ch
};

这很相似,但会覆盖 6 个“假”值中的任何:nullundefinedNaN0false''(空字符串)。因此,如果您这样做,并尝试为 ch 传递一个空字符串,它将被覆盖。

关于javascript - JS : how to create optionally chainable methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13864202/

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