Pozwala funkcję wyobrazić tak:Jak zrobić funkcję łańcuchową w JavaScript?
function foo(x) {
x += '+';
return x;
}
Wykorzystanie byłoby jak:
var x, y;
x = 'Notepad';
y = foo(x);
console.log(y); // Prints 'Notepad+'.
szukam sposobu na stworzenie funkcji, która jest chainable z innymi funkcjami.
Wyobraź Wykorzystanie:
var x, y;
x = 'Notepad';
y = x.foo().foo().toUpperCase(); // Prints 'NOTEPAD++'.
console.log(y);
Jak to zrobić?
dobrze jest przynajmniej sprawdzić właściwość natywnych typów przed jej dodaniem, np. 'If (! ('Foo' w String.prototype)) {String.prototype.foo = function() {.. .}} ' – keeganwatkins
Jeśli chcesz rozszerzyć obiekt bez zrywania wyliczenia, użyj (semi-modern) [' Object.defineProperty'] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ Object/defineProperty): Object.defineProperty (String.prototype, {value: function() {return this + "+";}}) ". Domyślnie flaga 'wyliczalna' jest ustawiona na 'fałsz'. – Phrogz
@keeganwatkins tak to jest :). Zakładam, że OP tylko pytał o ciągi jako przykład, więc ograniczyłem ostrzeżenia do minimum, ale to jest dobra uwaga. –