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。你的密码让我意识到这一点,谢谢。