如何将其转换为基于类的Javascript?
我需要帮助转换为基于类的Javascript。下面是我的代码:如何将其转换为基于类的Javascript?,javascript,class,Javascript,Class,我需要帮助转换为基于类的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
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);
};
函数Foo(选项){
this.index=options.index;
this.name=options.name | |‘foo’;
var items=options.items;
var self=这个;
功能条(){
self.say();
}
items.forEach(函数(){
self.say();
});
对于(变量i=0;i
这就是我尝试过的:
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)
}
}
class-Foo{
构造函数(选项){
this.index=options.index;
this.name=options.name | |‘foo’;
this.items=options.items
此.items.forEach(()=>{
这个,说()
})
对于(变量i=0;i
我目前正在尝试了解基于类的Javascript是如何工作的,以及是否值得切换到它
请问,这个代码有什么问题吗?这个类的
class Foo
基本上没有问题。但是,你不应该定义类,比如说。它必须是Foo
类Foo中的成员函数{
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) }
}
构造函数(选项){
this.index=options.index
this.name=options.name
this.items=options.items
var self=这个
this.items.forEach((e)=>self.say(e))
对于(var i=0;i
假设items是一个数组您的类
实现没有定义say()的内容
isok他的帖子被删除了,这里再次出现另一个链接:您需要调用super()
在子类的构造函数中。有时函数只是一个函数。@Liam:你能告诉我我复制了谁的注释吗?我没有对此投票,但它绝对正确。它正在调用this。say
,而this
没有say
方法。你真的试过吗,@messerbill?我已经并且我可以证实,say是FooNo biggie的原型,@messerbill,这对我来说也是个新闻:当你否决了答案时,我刚刚开始思考这到底是怎么回事