动态添加属性到原型对象

时间:2013-05-31 17:50:47

标签: javascript api dynamic prototype

我想知道动态添加属性到函数原型对象的最佳方法(或者如果它甚至是个好主意)。

这就是我提出的:

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

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

'str'.foo();

我正在为我添加的所有新属性调用相同的函数resolve(),我需要检查谁调用了函数(属性名称),以便根据该信息计算实现。 这完全是好奇心问题,我正在对疯狂的JavaScript API实现进行一些测试。

你们对此有什么建议吗?

1 个答案:

答案 0 :(得分:13)

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

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

("hello world").foo();
("hello world").bar();