jQuery技术:在$(document).ready(function(){..})中创建“namespace”;

// first.js $(document).ready(function() { var MyNamespace = {}; }); // second.js $(document).ready(function() { console.log(MyNamespace); }); 

运行此脚本我收到错误Uncaught ReferenceError: MyNamespace is not defined 。 我想,我收到此错误是因为MyNamespaceMyNamespace调用的定义在不同的范围内。 我该如何解决这个问题?

我需要在$(document).ready()包装器中创建命名空间,因为此命名空间中的函数将使用jQuery方法等。

什么是最佳做法?

谢谢!

    您需要更改两件事:

    你把var MyNamespace = MyNamespace || {}; var MyNamespace = MyNamespace || {}; 在你的两个js文件前面。 如果之前没有定义,它会将MyNamespace作为对象进行MyNamespace

     // first.js var MyNamespace = MyNamespace || {}; $(document).ready(function() { console.log(MyNamespace); }); // second.js var MyNamespace = MyNamespace || {}; $(document).ready(function() { console.log(MyNamespace); }); 

    如果您在文档就绪处理程序之外定义变量,它应该工作 –

     var MyNamespace = {}; $(document).ready(function() { console.log(MyNamespace); }); 

    在作用域外创建名称空间,然后在作用域内向其添加方法:

     var MyNamespace = {}; $(document).ready(function() { MyNamespace.MyFunction = function () { ... }; }); $(document).ready(function() { console.log(MyNamespace); }); 

    在外面创建并在里面更新它:

     var MyNamespace = {}; $(document).ready(function() { MyNamespace.Example = new function() { // do something }; }); $(document).ready(function() { console.log(MyNamespace); }); 

    使用var定义函数的局部变量,该变量在此范围之外是不可见的。 省略var将定义一个全局变量,也可以在另一个函数中访问。 一般来说,您应该避免使用全局变量,但如果这是您需要的,只需说出MyNamespace = {};

    使用’window’对象。

     $(document).ready(function () { window['x'] = 'test'; }); $(document).ready(function () { alert(x); }); 

      以上就是jQuery教程分享在$(document).ready(function(){..})中创建“namespace”;相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/558258.html

      (0)
      上一篇 2021年1月26日
      下一篇 2021年1月26日

      精彩推荐