Javascript 如何在jQuery的document.ready中使用显示模块模式?

Javascript 如何在jQuery的document.ready中使用显示模块模式?,javascript,jquery,closures,revealing-module-pattern,self-executing-function,Javascript,Jquery,Closures,Revealing Module Pattern,Self Executing Function,我有以下虽然很小的“显示模块模式”实现代码: (function (CkSpace, $, undefined) { CkSpace.GetLoanValues = function () { var url = "/Home/UpdateAPR"; $.get(url, { Amount: $("#slider").slider("value"), Length: $("#slider2").slider("value") }, function (

我有以下虽然很小的“显示模块模式”实现代码:

(function (CkSpace, $, undefined) {

    CkSpace.GetLoanValues = function () {
        var url = "/Home/UpdateAPR";

        $.get(url, { Amount: $("#slider").slider("value"), Length: $("#slider2").slider("value") }, function (data) {
            $("#LoanAmount").html("£"+data.LoanAdvance);
            $("#TotalToRepay").html("£" + data.LoanGrossRepayable);
            $("#Representative").html(data.LoanAPR);
            $("#MonthlyRepayTerm").html(data.LoanTerm);
            $("#MonthlyFee").html("£" + data.LoanInstalment);
        });
    }

} (window.CkSpace = window.CkSpace || {}, jQuery));
我的印象是,通过使用window.CkSpace,我可以作为其任何公共成员的根命名空间全局访问CkSpace。但是,当我将它与$document.ready结合使用时,我无法访问我的CkSpace命名空间,除非我在$document.ready中声明它

有人能在这里向我解释一下作用域问题吗?如果有,可以避免在我的$document.ready函数中声明它吗

编辑:我似乎有点健忘,在$document范围内访问CkSpace时,我没有在它前面加上window。准备好了吗

如果我理解了您的担忧,这个代码片段可能会帮助您

window.CkSpace = {};

(function (CkSpace) {

    CkSpace.getLoanValues = function () {
       alert('I provide loans');
    }

} (window.CkSpace || {}, jQuery));

window.CkSpace.getLoanValues();
小提琴:

如果没有,请将其最小化,因为内部代码与范围无关。在将对象集传递给函数之前,我不确定该对象集是否存在于窗口作用域中。

Ben

如果我理解了您的担忧,这个代码片段可能会帮助您

window.CkSpace = {};

(function (CkSpace) {

    CkSpace.getLoanValues = function () {
       alert('I provide loans');
    }

} (window.CkSpace || {}, jQuery));

window.CkSpace.getLoanValues();
小提琴:


如果没有,请将其最小化,因为内部代码与范围无关。在将对象集传递给函数之前,我不确定该对象集是否存在于窗口作用域中。

能否修改此代码,使其成为不起作用的代码。我在让这段代码+一个文档就绪函数正常工作方面没有问题。你有什么错误吗?嗨,安迪。我已经解决了这个问题,在尝试访问它之前,我没有在CkSpace前面加上window前缀。很明显,我需要更多的咖啡因。你能修改一下这个代码,让它不起作用吗。我在让这段代码+一个文档就绪函数正常工作方面没有问题。你有什么错误吗?嗨,安迪。我已经解决了这个问题,在尝试访问它之前,我没有在CkSpace前面加上window前缀。显然我需要更多的咖啡因。你好,帕拉布。我试图访问CkSpace而不在其前面加上window。你的密码让我意识到了这一点,谢谢。你好,帕拉布。我试图访问CkSpace而不在其前面加上window。你的密码让我意识到这一点,谢谢。