2013-09-30 55 views
-1

我想要一个包含其他对象数组并且能够调用其方法的Javascript对象obj。我还希望任何对象能够通过调用对象obj的特殊函数并将其自身的引用作为参数来注册到数组中。将对象存储在数组中并使用Javascript调用它们的方法

请问有人会那么善良,请帮助我吗?我一直都很难过。

此外,我想到了一个简单的解决方案,其中obj对象创建所有其他对象,但似乎并没有工作,以及...的

+0

灿你添加了一些代码来显示你到目前为止尝试了什么?那它不起作用呢? – elevine

回答

1

也许你的意思是这样

function Invoker(arr) { 
    arr = arr.slice(); 
    arr.invoke = function (methodName) { 
     var args = Array.prototype.slice.call(arguments, 1), 
      i; 
     for (i = 0; i < this.length; ++i) 
      if (methodName in this[i]) 
       this[i][methodName].apply(this[i], args); 
    }; 
    return arr; 
} 

var arr = [ 
    {foo: function (a, b) {console.log('foo', a);}}, 
    {foo: function (a, b) {console.log('bar', b);}} 
]; 
var invkr = Invoker(arr); 
invkr.invoke('foo', 'hello', 'world'); 
/* 
    foo hello 
    bar world 
*/ 
相关问题