Javascript扩展方法

时间:2015-04-21 18:58:53

标签: javascript

main.js 具有以下代码

    APP.open = (function ($) {
    return {
      people: (function() {
        return {

          gender: function() {},

          age: function() {}
         }
       })()
     };
    }(jQuery));

exteral.js 有:

    APP.open = (function ($) {
    return {
      people: (function() {
        return {
          race: function() {}
         }
       })()
     };
    }(jQuery));
最后加载了

exteral.js ,因此会覆盖 main.js

我的问题是,如何编写 exteral.js 以停止覆盖 方法。我想扩展APP.open.people方法。

3 个答案:

答案 0 :(得分:1)

  1. 你需要停止附加到jQuery,因为它是一个糟糕的编程习惯
  2. 您需要定义自己的空间并将其用于代码:
  3. 所以代码看起来像:

    var LS = LS || {};
    LS.open = function () {...}
    

    并打电话给它:

    LS.open();
    

    您可以找到有关JS模块here的更多信息。

答案 1 :(得分:1)

添加特定方法,而不是替换整个APP.open命名空间:

APP.open.people.race = function() {};

如果您不知道存在哪些命名空间,请先添加它们:

if (!'open' in APP) APP.open = {};
if (!'people' in App.open) App.open.people = {};

答案 2 :(得分:0)

在你的external.js中你可以尝试这样的事情:

var APP = APP || {}; 
APP.open.people = function(){return {race:function(){}}};