Javascript 获取object.function不是一个函数
我在javascript中创建了一个名为Group的类,其中包含一些方法。当我尝试测试这些方法时,控制台抛出一个x不是一个函数,我不知道为什么 这是密码Javascript 获取object.function不是一个函数,javascript,Javascript,我在javascript中创建了一个名为Group的类,其中包含一些方法。当我尝试测试这些方法时,控制台抛出一个x不是一个函数,我不知道为什么 这是密码 class Group { constructor(){ this.array= [] } add(number){ this.array.push(number); } delete(number){ this.array = filter(this.array, n => n != numb
class Group {
constructor(){
this.array= []
}
add(number){
this.array.push(number);
}
delete(number){
this.array = filter(this.array, n => n != number);
}
has(number){
for(let value in this.array){
if(value === number) return true;
return false;
}
}
static from(object){
return this.array = object;
}
}
以下是测试
let group = Group.from([10, 20]);
console.log(group);
console.log(group.has(10));
// → true
console.log(group.has(30));
// → false
group.add(10);
group.delete(10);
console.log(group.has(10));
// → false
如果因为我的代码不好而没有通过测试,我不介意自己修复它。我只是想知道为什么我会出错
非常感谢。Group.from是一个静态方法-它的内部将引用Group类,而不是实例。所以
return this.array = object;
分配给类,并返回传递的对象本身,这不是您想要的
返回一个实例,使用new-更改构造函数以接受默认为空数组的数组,该数组被分配给实例的.array属性:
班级{
constructorarr=[]{
this.array=arr;
}
地址号{
this.array.pushnumber;
}
删除号码{
//需要定义筛选方法,此删除方法才能工作
//this.array=filterthis.array,n=>n!=number;
}
hasnumber{
对于此.array中的let值{
如果值===number,则返回true;
}
返回false;
}
静态fromarr{
返回新的thisarr;
//也可以返回新的Grouparr,但灵活性较低
}
}
设group=group.from[10,20];
console.loggroup;
console.loggroup.has10;
// → 符合事实的
console.loggroup.has30;
// → 错误的
第10组 from是一个静态方法-它的内部将引用Group类,而不是实例。所以
return this.array = object;
分配给类,并返回传递的对象本身,这不是您想要的
返回一个实例,使用new-更改构造函数以接受默认为空数组的数组,该数组被分配给实例的.array属性:
班级{
constructorarr=[]{
this.array=arr;
}
地址号{
this.array.pushnumber;
}
删除号码{
//需要定义筛选方法,此删除方法才能工作
//this.array=filterthis.array,n=>n!=number;
}
hasnumber{
对于此.array中的let值{
如果值===number,则返回true;
}
返回false;
}
静态fromarr{
返回新的thisarr;
//也可以返回新的Grouparr,但灵活性较低
}
}
设group=group.from[10,20];
console.loggroup;
console.loggroup.has10;
// → 符合事实的
console.loggroup.has30;
// → 错误的
第10组;