如何初始化命名空间内的所有方法?命名空间javascript INITIALIZING ALL方法

时间:2011-09-09 15:47:02

标签: javascript jquery function namespaces initialization

也许这是一个简单的问题,但我在谷歌或这个网站上找不到任何东西。 所以,如果我有

var myNamespace = {

    foo: function() {
    },

    bar: function() {
    }
};

我如何加载foo()和bar()而不必逐个加载,例如

<script type="text/javascript">
    $(document).ready(function(){
        myNamespace.foo();
        myNamespace.bar();
        .
        .
        .
    });
</script>

3 个答案:

答案 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对其进行补丁。