javascript中的命名空间实现

时间:2011-05-23 15:30:52

标签: javascript namespaces

我使用以下格式来避免可能的命名冲突。 我的主要目标是在开发过程中将程序的各个部分保存在不同的文件中,然后将其组合起来

是编辑

main.js

Editor=function(){
    this.manage=function(){

    }

}
var editor= new Editor;

a.js

Editor.prototype.A=function(){
        this.afunct=function(){

       }
}

b.js

Editor.prototype.B=function(){
      var this.var1;
      var this.var2;
      this.bfunct=function(){
           //call afunct() here
      }
}

A是一组功能,可以进行一些测试,修改等。 afunct是一个测试函数,需要在所有其他文件中使用。 B应该充当数据包,并且将创建它的新实例以传递。

我如何打电话给bfunct? 请帮助我理解我是如何做到这一点的。提前谢谢。

PS。我是Javascript的新手,请原谅我的逻辑中的任何缺陷。

3 个答案:

答案 0 :(得分:1)

这很模糊,但这可能会这样做:

(function() {

    var Editor = function() {

    };

    Editor.prototype = {
        A: {
            afunct: function() {
                // Other functionality here.
            }
        },
        B: {
            bfunct: function() {
                Editor.prototype.A.afunct.call(this);
            }
        }
    };

    window.Editor = Editor;

})();


var editor = new Editor();

editor.B.bfunct();

答案 1 :(得分:0)

从B内部开始,这应该可行

Editor.A.apply(this)

答案 2 :(得分:0)

Editor.prototype.B内部尝试:

Editor.prototype.B=function(){
      var this.var1;
      var this.var2;
      var self = this;
      this.bfunct=function(){
           //call afunct() here
           self.prototype.B.afunct();
      }
}