讓我們想象的功能是這樣的:如何在JavaScript中創建可鏈接的函數?
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);
我會怎麼做呢?
這是一個好主意,至少在添加它之前檢查本地類型的屬性,即'if(!('('foo'in String.prototype)){String.prototype.foo = function(){.. 。}}' – keeganwatkins
如果你想在不破壞枚舉的情況下擴展一個對象,可以使用(semi-modern)['Object.defineProperty'](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ Object/defineProperty):'Object.defineProperty(String.prototype,{value:function(){return this +「+」;}})'。默認情況下,'enumerable'標誌被設置爲'false'。 – Phrogz
@keeganwatkins是的,它是:)。我認爲OP只是以字符串作爲例子,所以我儘量保持警告,但這是一個很好的觀點。 –