Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS中的面向对象设计_Javascript_Node.js_Oop - Fatal编程技术网

Javascript NodeJS中的面向对象设计

Javascript NodeJS中的面向对象设计,javascript,node.js,oop,Javascript,Node.js,Oop,我已经在NodeJS工作了一段时间,无法在其中绕开面向对象设计的概念。我能做的最好的事情是: var SomeClass = function(){ var self = this; self.connect = function(){ // function code } // for events/callbacks raised in this class ...(someVar, self.onDataReceived) s

我已经在NodeJS工作了一段时间,无法在其中绕开面向对象设计的概念。我能做的最好的事情是:

var SomeClass = function(){
    var self = this;
    self.connect = function(){
        // function code
    }
    // for events/callbacks raised in this class
    ...(someVar, self.onDataReceived)
    self.onDataReceived = function(data){
        // do something with data
    }
}
这对于自包含的代码很有效,但是当类必须相互交互时,我的代码组织就消失了

所以,我的问题是:

  • 我们在Rails/Laravel和love中找到的Javascript应用程序设计真的有那么好吗
  • 如果单线程是未来的趋势,那么没有更好的替代方案来代替NodeJS来促进代码组织吗

  • js不是一种组织代码的方法,而且,就目前而言,javascript本身并没有提供强大的OOP(有保证的接口、简单的继承、依赖注入等)


    但是,它存在一个帮助您执行OOP的方法。我可以向您推荐一个框架,它是一个OOP框架,提供了一种强大的代码组织方式。

    Node.js不是一种组织代码的方式,而且,就目前而言,javascript本机不提供强大的OOP(有保证的接口、简单的继承、依赖项注入等)


    但是,它存在一个帮助您执行OOP的方法。我可以向您推荐一种面向对象的框架,它提供了一种强有力的方式来组织代码。

    最后一个问题不适合这样做,因为它只会吸引意见。除非有人用研究来回答,但我认为这不会发生。你最好把它从你的帖子中删除。也许你的“类交互设计”是一团糟,而不是你的类代码?它们是如何相互作用的?这可能会给IMO带来一些启示,一般来说,JS被认为是一种方案/函数语言,而不是一种OO语言。因此,设计软件的方法不同,这个问题的基本前提是“这对自包含的代码很有效,但当类必须相互交互时,我的代码组织就消失了。”例如…?最后一个问题不适合这样做,因为它只吸引意见。除非有人用研究来回答,但我认为这不会发生。你最好把它从你的帖子中删除。也许你的“类交互设计”是一团糟,而不是你的类代码?它们是如何相互作用的?这可能会给IMO带来一些启示,一般来说,JS被认为是一种方案/函数语言,而不是一种OO语言。因此,设计软件的方法各不相同,这个问题的基本前提是“这对自包含的代码很有效,但当类必须相互交互时,我的代码组织就消失了。”例如。。。?