如何初始化名称空间内的所有方法?初始化所有方法

How to initialize all methods inside a namespace?namespaces javascript INITIALIZING ALL methods

本文关键字:有方法 初始化 空间      更新时间:2023-09-26

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

var myNamespace = {
    foo: function() {
    },
    bar: function() {
    }
};

如何加载foo()和bar()而不需要逐个加载,例如

<script type="text/javascript">
    $(document).ready(function(){
        myNamespace.foo();
        myNamespace.bar();
        .
        .
        .
    });
</script>
for (var k in namespace) {
    if (typeof namespace[k] === 'function') {
        namespace[k]();    
    }
}
var func;
for (func in namespace) {
   if (namespace.hasOwnProperty(func) {
       if (typeof namespace == 'Function') {
           namespace[func]();
       }
   }
}

我还没有测试过这个,但是这样的东西应该证明是有用的。JavaScript中的每个函数都有一个call()方法来调用它。然后:

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

如果您需要替换this作用域引用,您可以用jQuery.proxy来修补它。