Мне нужна помощь в преобразовании Javascript на основе классов. Ниже мой код:
function Foo(options) {
this.index = options.index;
this.name = options.name || 'foo';
var items = options.items;
var self = this;
function bar() {
self.say();
}
items.forEach(function () {
self.say();
});
for (var i = 0; i < items.length; i++) {
bar();
}
}
Foo.prototype.say = function () {
console.log(arguments);
};
Вот что я пробовал:
class Foo {
constructor(options) {
this.index = options.index;
this.name = options.name || 'foo';
this.items = options.items
this.items.forEach(() => {
this.say()
})
for (var i = 0; i < items.length; i++) {
this.bar();
}
}
bar() {
this.say();
}
}
class say extends Foo {
constructor() {
console.log(arguments)
}
}
В настоящее время я пытаюсь увидеть, как работает Javascript на основе классов, и посмотреть, стоит ли переходить на него.
Пожалуйста, что может быть не так с этим кодом?
2 ответа
class Foo {
constructor(options) {
this.index = options.index
this.name = options.name
this.items = options.items
var self = this
this.items.forEach((e) => self.say(e))
for(var i = 0; i < this.items.length; i ++) {
this.bar(items[i])
}
}
say(arg) { console.log(arg) }
bar(arg) { this.say(arg) }
}
Предполагая, что элементы являются массивом
Класс class Foo
в основном нормальный. Но вы не должны определять class say
. Это должна быть функция-член в Foo
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.