2

関数のプロトタイプ オブジェクトにプロパティを動的に追加する最善の方法を考えていました (または、それが良いアイデアであるかどうか)。

これは私が思いついたものです:

['foo', 'bar'].forEach(function(method) {
    String.prototype[method] = resolve;
});

function resolve() {
    // Who the hell called me?
}

'str'.foo();

追加したすべての新しいプロパティに対して同じ関数を呼び出してresolve()います。その情報に基づいて実装を把握するために、誰が関数を呼び出したか (どのプロパティ名) を確認する必要があります。それはすべて好奇心の問題です。私はクレイジーな JavaScript API 実装でいくつかのテストを行っています。

これについて何か提案はありますか?

4

1 に答える 1

14
['foo', 'bar'].forEach(function (method) {
    String.prototype[method] = function () {
        resolve(method);
    };
});

function resolve(method) {
    alert(method);
}

("hello world").foo();
("hello world").bar();
于 2013-05-31T17:59:00.697 に答える