【问题标题】:How can I use a Namespace in two different files?如何在两个不同的文件中使用命名空间?
【发布时间】:2013-10-06 10:53:43
【问题描述】:

我正在尝试在两个不同的文件中使用命名空间。

第一个文件:

        $(document).ready(function () {
               var App= window.App || {};

               App.Form = can.Control.extend({... });
               window.App = App;
        });

第二个文件:

        $(document).ready(function () {

               var App2 = window.App2 || {};

               App2.Form = can.Control({ 
               new App.Form();
               });

               window.App2 = App2;
        }); 

但我不断收到此错误:

Uncaught TypeError: undefined is not a function.

我做错了什么?

【问题讨论】:

  • 你在哪里得到这个错误?我的意思是在哪条线上?
  • 对象can是什么?
  • 我在这一行得到错误:new App.Form();
  • 我正在使用canjs。这就是为什么那里有一个罐子
  • 这是两个不同的命名空间 :-) 你确定你的第二个文件是在你的第一个文件之后执行的吗?

标签: javascript javascript-namespaces


【解决方案1】:

在你的第二个文件中试试这个

;(function(global) {

    var App = window.App || {}


    $(document).ready(function () {

           var App2 = window.App2 || {};

           App2.Form = can.Control({ 
           new App.Form();
           });

           window.App2 = App2;
    }); 

})(window);

【讨论】:

  • 我愿意})(window.App = window.App || {});
  • 第二个文件必须放在后面
  • 之后如何包含它?
猜你喜欢
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多