【问题标题】:How do you write a class in Javascript? [duplicate]你如何用 Javascript 编写一个类? [复制]
【发布时间】:2010-10-29 23:37:08
【问题描述】:

可能重复:
What's the best way to define a class in javascript

你如何用 Javascript 编写一个类?有没有可能?

【问题讨论】:

  • 确认。 “javascript”被编辑为“Javascript”而不是“JavaScript”。
  • 我更喜欢 jAvAsCrIpt。这是正确的方法。

标签: javascript class


【解决方案1】:

好吧,JavaScript 是一种基于原型的语言,它没有类,但您可以通过对象克隆和原型设计来进行经典继承,以及其他行为重用模式。

推荐文章:

【讨论】:

    【解决方案2】:
    function Foo() {
       // constructor
    }
    
    Foo.prototype.bar = function() {
        // bar function within foo
    }
    

    【讨论】:

    • 我认为你在bar的开头有一个额外的“功能”。 :-)
    • 是的。另外,别忘了提到你必须使用 new Foo()。
    • 哎呀修复了,我不习惯写 javascript oo。
    【解决方案3】:

    Javascript 默认使用基于原型的 OO。

    但是,如果您使用原型库,例如,您可以使用 Class.create()。

    http://prototypejs.org/api/class/create

    它可以让你创建(或继承)一个类,然后你可以用 new 实例化它的实例。

    其他图书馆可能也有类似的设施。

    【讨论】:

    • 有的。 jQuery 没有,因为它预计您将更有可能处理 jQuery 集合而不是类。
    【解决方案4】:

    如果您使用原型或 jQuery 之类的库,它会容易得多,但传统的方法是这样做。

    function MyClass(){
    }
    MyClass.prototype.aFunction(){ 
    }
    
    var instance = new MyClass();
    instance.aFunction();
    

    您可以在此处阅读更多内容http://www.komodomedia.com/blog/2008/09/javascript-classes-for-n00bs/

    【讨论】:

      【解决方案5】:

      “有点”可能。 Prototype 有一些在 JS 中编写类的内置帮助。看看this thorough description,你是如何做到的。

      var namedClass = Class.create({
          initialize: function(name) {
              this.name = name;
          }
      
          getName: function() {
              return this.name;
          }
      });
      var instance = new namedClass('Foobar');
      

      【讨论】:

        【解决方案6】:

        JavaScript 基于对象,而不是类。它使用原型继承,而不是经典继承。

        JavaScript 具有延展性并且易于扩展。因此,有许多库为 JavaScript 添加了经典继承。但是,使用它们可能会导致编写大多数 JavaScript 程序员难以遵循的代码。

        【讨论】:

          猜你喜欢
          • 2011-09-04
          • 1970-01-01
          • 2010-10-12
          • 1970-01-01
          • 1970-01-01
          • 2023-03-26
          • 2020-07-31
          • 2019-12-27
          • 2013-12-08
          相关资源
          最近更新 更多