реализация пространства имен в JavaScript - PullRequest
4 голосов
/ 23 мая 2011

Я использую следующий формат, чтобы избежать возможных конфликтов имен.Моя основная цель - сохранить части программы в разных файлах во время разработки, а затем объединить их. Редактор - это

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 будет действовать как пакет данных, и будут созданы его новые экземпляры для передачи.

Как я буду вызывать afunct внутри bfunct?Пожалуйста, помогите мне понять, как я могу это сделать.Заранее спасибо.

PS.Я новичок в Javascript и прошу прощения за любую ошибку в моей логике.

Ответы [ 3 ]

1 голос
/ 23 мая 2011

Это неясно, но это может сделать это:

(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 голосов
/ 23 мая 2011

Попробуйте это изнутри 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();
      }
}
0 голосов
/ 23 мая 2011

Изнутри B это должно работать

Editor.A.apply(this)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...