javascript - 如何在 JavaScript 中创建可链接函数?

标签 javascript function return chain chainable

让我们想象一下这样的函数:

function foo(x) {
    x += '+';
    return x;
}

它的用法如下:

var x, y;
x = 'Notepad';
y = foo(x);
console.log(y); // Prints 'Notepad+'.

我正在寻找一种方法来创建可与其他函数链接的函数。

想象一下用法:

var x, y;
x = 'Notepad';
y = x.foo().foo().toUpperCase(); // Prints 'NOTEPAD++'.
console.log(y);

我该怎么做?

最佳答案

当然,技巧是在完成修改后返回对象:

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

var str = "Notepad";
console.log(str.foo().foo().toUpperCase());

http://jsfiddle.net/Xeon06/vyFek/

为了使该方法在 String 上可用,我正在修改它的原型(prototype)。但请注意不要在 Object 上执行此操作,因为在枚举其属性时可能会导致问题。

关于javascript - 如何在 JavaScript 中创建可链接函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7730334/

相关文章:

javascript - image.style.left 不工作 javascript

java - 更新不同类中的变量

javascript - 在 JavaScript 中分解函数名称

c# - 如何通过正则表达式删除字符串中多余的回车和空格?

javascript - 我想使用 Html2canvas 截取一个 div 的屏幕截图

Javascript:追加到元素会使之前的子元素丢失输入数据

javascript - 如何导出 Codepen 以在网站的 HTML 中使用

python - 如何创建一个可以根据输入参数将字符串拆分任意次数的函数?

Java boolean 方法需要额外的 return 语句吗?

c - 结构体字段中的数组在返回时是否始终保留?