【问题标题】:what are Classes in JavascriptJavascript中的类是什么
【发布时间】:2015-12-21 01:34:15
【问题描述】:

我不明白为什么在javascript中一个类被称为一个类,而它只是定义一个函数,以便在运行时将它变成一个对象。 示例如下。

var Person = function (firstName) {
  this.firstName = firstName;
  console.log('Person instantiated');
};


var person1 = new Person('Alice');
var person2 = new Person('Bob');

// Show the firstName properties of the objects
console.log('person1 is ' + person1.firstName); // logs "person1 is Alice"
console.log('person2 is ' + person2.firstName); // logs "person2 is Bob"

那么它就像一个对象的蓝图/模板吗?

编辑。好的,我知道我现在写的不是一个类,在这个链接https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript 它多次提到它是一个类。

编辑此问题已得到解答,感谢您的帮助。

【问题讨论】:

  • 这不是一个类,而是所谓的“构造函数”。您上面的模型被称为“伪经典继承”,因为它模仿了使用类的语言创建对象的方式。不,它们不是对象的蓝图/模板,因为您可以在任何给定时间将字段/方法添加到 JavaScript 中的对象。
  • 感谢您的帮助,不知道
  • developer.mozilla.org/en-US/docs/Web/JavaScript/… - 整个页面指的是我作为一个班级所谈论的内容

标签: javascript function class object


【解决方案1】:

最近在ECMAScript 6 中引入了JavaScript 类。它们是之前 prototypal inheritance 模型的语法糖。

这为创建对象和处理继承提供了一种更简单、更清晰的语法。

声明类的一种方法是使用class 关键字,后跟您正在创建的类的名称。这是一个简单的例子。

class Polygon {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes

请务必注意,Internet ExplorerOpera 不支持类。

【讨论】:

    【解决方案2】:

    类在技术上只是 EcmaScript 6 中引入的一种函数形式。它们需要 类声明类表达式 先于类的用途。但是,您的示例中使用的语法不是这些东西中的任何一个。可以在Mozilla Developer Network 找到类使用示例。

    【讨论】:

    • 我是从 Mozilla 网站获得的。 “类 JavaScript 是一种基于原型的语言,不包含类语句,例如在 C++ 或 Java 中发现的。这有时会让习惯于使用类语句的语言的程序员感到困惑。相反,JavaScript 使用函数作为类的构造函数。定义一个类就像定义一个函数一样简单。在下面的示例中,我们定义了一个名为 Person 的新类,其构造函数为空。"
    猜你喜欢
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    相关资源
    最近更新 更多