JavaScript 中的命名空间实现

发布于 2024-11-09 12:45:56 字数 674 浏览 0 评论 0原文

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

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 中调用 afunct? 请帮助我了解如何做到这一点。先感谢您。

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

I'm using the following format to avoid possible naming conflicts.
My main aim is to keep the parts of the program in different files during development and then later combine it
Editor is the

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 is a set of functions that does some testing,modification etc.
afunct is a tester function which needs to be used in all the other files.
B is supposed to act as a data package and new instances of it will be created to pass around.

How will I call afunct inside bfunct?
Please help me understand how I can do this. Thank You in advance.

PS. I'm kind of a newbie in Javascript and please pardon any flaw in my logic.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青春有你 2024-11-16 12:45:56

这很晦涩,但这可能会做到这一点:

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

It's obscure, but this might do it:

(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();
毁虫ゝ 2024-11-16 12:45:56

从 B 内部这应该可以工作

Editor.A.apply(this)

From inside B this should work

Editor.A.apply(this)
与酒说心事 2024-11-16 12:45:56

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();
      }
}

Try this from inside 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();
      }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文