也许这是一个简单的问题,但我在谷歌或这个网站上找不到任何东西。 所以,如果我有
var myNamespace = {
foo: function() {
},
bar: function() {
}
};
我如何加载foo()和bar()而不必逐个加载,例如
<script type="text/javascript">
$(document).ready(function(){
myNamespace.foo();
myNamespace.bar();
.
.
.
});
</script>
答案 0 :(得分:2)
for (var k in namespace) {
if (typeof namespace[k] === 'function') {
namespace[k]();
}
}
答案 1 :(得分:2)
var func;
for (func in namespace) {
if (namespace.hasOwnProperty(func) {
if (typeof namespace == 'Function') {
namespace[func]();
}
}
}
答案 2 :(得分:1)
我没有对此进行测试,但这样的事情应该证明是有用的。
JavaScript中的每个函数都有一个call()
方法来调用它。然后:
$(document).ready(function() {
$.each(myNamespace, function(index, obj) {
if (typeof(obj) == 'function')
{
obj.call(myNamespace);
}
});
});
如果您需要替换this
范围参考,可以使用jQuery.proxy
对其进行补丁。