Когда я исследую онлайн, я нахожу разные ответы.Javascript - Методы, определенные в прототипе класса или свойства?
class Foo {
constructor() {
this.data = [];
}
add(x) {
//
}
}
Является ли вышеуказанный код эквивалентным коду A или коду B?
Код A:
function Foo() {
this.data = [],
this.add = function(x) {
//
}
}
Код B:
function Foo() {
this.data = []
}
Foo.prototype.add = function(x) {
//
}
Спасибо за помощь!
см. Здесь для углубленных документов для ES6 - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes –
Они эквивалентны B. Сделайте 'console.dir (Foo.prototype)' и убедитесь сами. –
Связанные: [Сравнение языков на основе классов и объектов (спецификация ECMAScript)] (http://stackoverflow.com/q/34010495/218196) –