Javascript中对单个函数的多次调用

Javascript中对单个函数的多次调用,javascript,Javascript,为了缩短我的代码, 我想知道是否有可能同时从多个对象调用同一个函数 比如: [person, company, city].name(); 而不是: person.name(); city.name(); company.name(); 我能做些类似的事情吗?如果你坚持的话 [person, company, city].forEach(function(fn) { fn.name(); }); 一般的 Array.prototype.callFn = function (ar

为了缩短我的代码, 我想知道是否有可能同时从多个对象调用同一个函数

比如:

[person, company, city].name();
而不是:

person.name();
city.name();
company.name();
我能做些类似的事情吗?

如果你坚持的话

[person, company, city].forEach(function(fn) { 
    fn.name(); 
});
一般的

Array.prototype.callFn = function (arr, fName) {
    arr.forEach(function(fn) {
        fn[fName]();
    })
}
[person, company, city].callFn('name');
警告:有人说,在扩展内置对象的原型时需要发出警告——因此,有人警告您,这种令人发指的javascript叛逆行为正在代码的第二个“通用”版本中实施


我认为这是不可能的,你已经分别称它们为短代码并不意味着最好的代码。与其缩短代码,不如对其进行优化。您可以将它们全部放在一个数组中,然后在数组上循环,但除非您有相当多的对象,否则该循环将更长。
为了缩短我的代码
这增加了LoCFun事实:此代码比单个调用长50%。这也使它更难阅读。(两者都是OP的请求问题,而不是答案问题)@Cerbrus和更慢。我用你的“如果你坚持”笑了一分钟。哈哈哈,太好了。实际上,这段代码和单独调用的代码是一样的,我希望用户解释他需要什么。同时调用不同对象的函数不会返回任何有效值,因此这是不可能的。@Tushar-如果您认为3是许多对象,那么是的,这个“解决方案”更长-如果数组中有200个对象怎么办?这个代码长还是短:D