2011-05-23 66 views
4

我正在使用以下格式来避免可能的命名冲突。 我的主要目标是保持在开发过程中不同的文件程序的部分,再后来结合起来 Editor是JavaScript中的名称空间实现

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是一组函数tha t做一些测试,修改等。 afunct是一个需要在所有其他文件中使用的测试函数。 B被认为是一个数据包,它的新实例将被创建以传递。

我该怎么称呼bfunct内部不合适? 请帮我理解我该如何做到这一点。先谢谢你。

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

回答

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(); 
+0

其中是命名空间吗? – Neal 2011-05-23 15:42:33

+0

对不起,我没有关注你... – Eli 2011-05-23 15:43:09

+0

namespace。你在哪里做'variable = new something;等等等等。' – Neal 2011-05-23 15:44:05

0

从内部B这应该工作

Editor.A.apply(this) 
+0

什么是应用() ? – 2011-05-24 03:20:00

+0

使用给定的值调用函数 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply – sym3tri 2011-05-24 06:47:14

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(); 
     } 
} 
相关问题