2013-09-30 81 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 
*/ 
相關問題