Javascript 为什么';";这";关键字在下面我的代码中的类中使用静态方法?
我正在做这个练习。我成功地编写了代码,但我不明白为什么我使用Javascript 为什么';";这";关键字在下面我的代码中的类中使用静态方法?,javascript,static,this,Javascript,Static,This,我正在做这个练习。我成功地编写了代码,但我不明白为什么我使用this时代码不起作用 我当前的代码: class Group { constructor() { this.members = []; } has(value) { return this.members.includes(value); } add(value) { if (!this.has(value)) this.members.push(value); } delet
this
时代码不起作用
我当前的代码:
class Group {
constructor() {
this.members = [];
}
has(value) {
return this.members.includes(value);
}
add(value) {
if (!this.has(value)) this.members.push(value);
}
delete(value) {
if (this.has(value)) return this.members =
this.members.filter(element => element != value);
}
static from(array) {
let newGroup = new Group();
for (let element of array) {
newGroup.add(element);
}
return newGroup;
}
}
我尝试将静态从(数组){…}
更改为:
static from(array) {
let newGroup = new Group();
for (let element of array) {
this.members.push(element);
}
return newGroup;
}
考虑到newGroup.add(element)
和this.members.push(element)
相对相同,为什么后者在第二个静态方法中不起作用
考虑到newGroup.add(元素)和this.members.push(元素)
没有此
在静态方法中指向类本身(组
),它不指向不存在的实例。这意味着您可以将其用作:
let newGroup = new this();
newGroup.members.push(element);
考虑到newGroup.add(元素)和this.members.push(元素)
没有此
在静态方法中指向类本身(组
),它不指向不存在的实例。这意味着您可以将其用作:
let newGroup = new this();
newGroup.members.push(element);
我懂了。所以它没有指向
newGroup
。谢谢你的解释:-)!我懂了。所以它没有指向newGroup
。谢谢你的解释:-)!