Javascript 在DOM就绪函数中从匿名函数传递对象

Javascript 在DOM就绪函数中从匿名函数传递对象,javascript,jquery,dom,anonymous-function,module-pattern,Javascript,Jquery,Dom,Anonymous Function,Module Pattern,问题1:如何将myApp对象从匿名函数内部加载到DOM就绪函数。我知道传递对象的一种方法是使用窗口。myApp=myApp;在匿名函数中,但这会将myApp对象公开为全局对象 $(function(){ //Load myApp inside here }); (function(){ var myApp = { //with properties inside } }()); 问题2:此外,我还看到了以下括号内和括号外。他们是干什么的 (function(){

问题1:如何将myApp对象匿名函数内部加载到DOM就绪函数。我知道传递对象的一种方法是使用窗口。myApp=myApp;在匿名函数中,但这会将myApp对象公开为全局对象

$(function(){
    //Load myApp inside here
});

(function(){
   var myApp = {
     //with properties inside
   }
}());
问题2:此外,我还看到了以下括号内括号外。他们是干什么的

(function(){
   var myApp = {
     //with properties inside
   }
}(brackets inside))(brackets outside);
问题3:我知道这是不可能的,但在加载DOM后是否有黑客/技巧来加载匿名函数?

可能是这样的:

(function () {
    var myApp = {
        //with properties inside
    }
    $(function () {
        // document is ready AND myApp is accessible
        myApp.init();
    });
}());
关于问题的第二部分:将调用放在括号内或括号外并没有什么区别。有些编码人员更喜欢一种变体而不是另一种

如果你问
()()
做什么;它调用一个返回函数的函数并调用返回的函数。考虑这个例子和它的输出:

(function () {
    console.log("anonymous outer function");
    return function () {
        console.log("anonymous inner function");
    }
})()();

// output:
// anonymous outer function
// anonymous inner function 

你不能将
myApp
放入DOM ready本身吗?将
myWholeApp
单例作为全局对象不是问题。我可以这样做,但我正在努力隔离匿名函数中的所有核心属性和方法,并且只使用DOM ready来操作DOM元素。
(function () {
    console.log("anonymous outer function");
    return function () {
        console.log("anonymous inner function");
    }
})()();

// output:
// anonymous outer function
// anonymous inner function