2011-09-09 31 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