2011-09-09 100 views

回答

1

我沒有測試過這個,但是像這樣的東西應該證明是有用的。 JavaScript中的每個函數都有一個調用它的方法call()。然後:

 

$(document).ready(function() { 
    $.each(myNamespace, function(index, obj) { 
    if (typeof(obj) == 'function') 
    { 
     obj.call(myNamespace); 
    } 
    }); 
}); 
 

如果您需要更換this範圍的參考,你可以用jQuery.proxy修補這個了。

+1

1' 'Function''應'' function''。 2.你需要爲'call'方法提供'namespace'上下文。 – bjornd

+0

@bjornd謝謝!固定。 –

+0

工作的一種享受。感謝兩個! – odle

2
for (var k in namespace) { 
    if (typeof namespace[k] === 'function') { 
     namespace[k]();  
    } 
} 
+0

我認爲如果名稱空間中的某些內容不是函數,將會失敗。 –

+0

@Joel Alejandro fixed – bjornd

2
var func; 

for (func in namespace) { 
    if (namespace.hasOwnProperty(func) { 
     if (typeof namespace == 'Function') { 
      namespace[func](); 
     } 
    } 
} 
+1

我認爲使用保留字'function'作爲變量名是個壞主意。 – bjornd

+0

你說得對。我已經忘記了。我很快就會解決的。 – user278064

相關問題