【问题标题】:when to use ES6 class and when to use function in javascript [duplicate]何时使用 ES6 类以及何时在 javascript 中使用函数 [重复]
【发布时间】:2016-05-27 07:26:54
【问题描述】:

随着 ES6 的到来。 所以我想知道什么时候用class,什么时候用simple function 在javascript中。

作为函数也可以生成新对象。

【问题讨论】:

  • 当你需要一个类(带有原型对象的构造函数)时,你可以使用class。当你需要一些其他功能时,你可以使用function

标签: javascript es6-class


【解决方案1】:

Js Class 只是

的语法糖
function SomeClass() {
    // this is basically a constructor
    this.property = 'some value';
};

SomeClass.prototype.someMethod = function() {
    // here you define method logic
}

如果您使用 Babel 或 Typescript,或者您根本不关心浏览器的互操作性,您可以使用 class 表示法,因为它更易于编写,但本质上没有任何变化。

作为函数也可以生成新对象。

在 JS 中,除了原语(布尔值、数字)之外的所有内容都是从 Object 创建的,所以即使 ArrayString{}Function 都能够创建新对象,但不是Java 或 C# 等 OOP 语言。

你看,JS 是原型语言。每个对象都有一个名为prototype 的特殊成员。如果您调用someObject.someMember,则在someObject 中搜索someMember,如果在那里找不到,引擎将在someObject.protoype 中查找,其中通常是一些previousObject。你可以说someObjectpreviousObject 的子类,因为它引用previousObject 作为它的prototype。它与 OOP 语言不同,但它的工作方式几乎与子类化相同。

你可以像这样从任何对象创建新对象

var newObject = {};
newObject.prototype = previousObject;

var newObject = Object.create(previousObject);

function newObject () { ... }
newObject.prototype = previousObject;

class newObject extends previousObject { ... }

【讨论】:

    猜你喜欢
    • 2016-03-21
    • 2012-03-26
    • 2014-06-16
    • 2011-06-25
    • 2011-04-02
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2019-02-20
    相关资源
    最近更新 更多