我想知道动态添加属性到函数原型对象的最佳方法(或者如果它甚至是个好主意)。
这就是我提出的:
['foo', 'bar'].forEach(function(method) {
String.prototype[method] = resolve;
});
function resolve() {
// Who the hell called me?
}
'str'.foo();
我正在为我添加的所有新属性调用相同的函数resolve()
,我需要检查谁调用了函数(属性名称),以便根据该信息计算实现。
这完全是好奇心问题,我正在对疯狂的JavaScript API实现进行一些测试。
你们对此有什么建议吗?
答案 0 :(得分:13)
['foo', 'bar'].forEach(function (method) {
String.prototype[method] = function () {
resolve(method);
};
});
function resolve(method) {
alert(method);
}
("hello world").foo();
("hello world").bar();