var x, y;
x = 'Notepad';
y = foo(x);
console.log(y); // Prints 'Notepad+'.
私は他の機能とチェーン可能だ関数を作成する方法を探しています:それの
function foo(x) {
x += '+';
return x;
}
使用法は次のように次のようになります。
はこのように機能を想像することができます。
使用状況を想像してみて:
var x, y;
x = 'Notepad';
y = x.foo().foo().toUpperCase(); // Prints 'NOTEPAD++'.
console.log(y);
私はこれをどのように行うのでしょうか?
それを追加する前に、ネイティブタイプのプロパティを少なくともチェックすることは良いアイデアです。つまり、 'if(String.prototypeのfoo '){String.prototype.foo = function(){.. 。}} ' – keeganwatkins
列挙を壊さずにオブジェクトを拡張したい場合は、(半近代的な)[' Object.defineProperty'](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/オブジェクト/定義プロパティ): 'Object.defineProperty(String.prototype、{value:function(){return this +";}}) 'デフォルトでは、 'enumerable'フラグは' false'に設定されています。 – Phrogz
@keeganwatkinsはいそうです:)。 OPは例としてストリングだけを尋ねていたと思うので、警告を最小限に抑えましたが、それは良い点です。 –