когда использовать класс ES6 и когда использовать функцию в javascript

Поскольку ES6 прибыл с классом. Поэтому я хочу знать, когда использовать класс и когда использовать простую функцию в javascript.

Так как функция также способна сделать новый объект.


person user3852580    schedule 27.05.2016    source источник
comment
Вы используете class, когда вам нужен класс (функция-конструктор с объектом-прототипом). Вы используете function, когда вам нужна какая-то другая функция.   -  person Bergi    schedule 27.05.2016


Ответы (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, поэтому все, даже Array, String, {} или Function, способно создать новый объект, но не в смысле языков ООП, таких как Java или C#.

Видите ли, JS — это прототип языка. У каждого объекта есть специальный член с именем prototype. Если вы вызываете someObject.someMember, someMember ищется в someObject, и если он там не найден, движок ищет в someObject.protoype, где обычно находится previousObject. Можно сказать, что someObject является подклассом previousObject, потому что он ссылается на previousObject как на свой prototype. Он отличается от языков ООП, но работает почти так же, как создание подклассов.

Вы можете создать новый объект из любого объекта, подобного этому

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

or

var newObject = Object.create(previousObject);

or

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

or

class newObject extends previousObject { ... }
person Rudolf Gröhling    schedule 27.05.2016