Javascript 循环的类数组失败

Javascript 循环的类数组失败,javascript,Javascript,我有一段代码,当我尝试使用for循环时失败了 类种皮{ testArray=[]; 建造师{ 这个,测试,推{ 姓名:乔, 年龄:70 }; 这个,测试,推{ 姓名:迈克, 年龄:50 }; 这个,测试,推{ 姓名:鲍勃, 年龄:33 }; } 测试回路{ 为了测试这个{ console.log>>>+test.name++test.age; } } } var a=新约; a、 testLoop 您应该为该行编写let: for (let test of this.testArray) {

我有一段代码,当我尝试使用for循环时失败了

类种皮{ testArray=[]; 建造师{ 这个,测试,推{ 姓名:乔, 年龄:70 }; 这个,测试,推{ 姓名:迈克, 年龄:50 }; 这个,测试,推{ 姓名:鲍勃, 年龄:33 }; } 测试回路{ 为了测试这个{ console.log>>>+test.name++test.age; } } } var a=新约; a、 testLoop 您应该为该行编写let:

for (let test of this.testArray) {
您忘记使用let或const声明测试

如果希望循环体中的标识符为只读,则使用const,例如,如果有人稍后修改代码以添加赋值,则在严格模式下这是一个主动错误。如果您希望能够分配给它,因为您的代码中有一个分配,或者您希望有人能够在不更改声明的情况下添加一个分配,请使用let

摘自:

类种皮{ testArray=[]; 建造师{ 这个,测试,推{ 姓名:乔, 年龄:70 }; 这个,测试,推{ 姓名:迈克, 年龄:50 }; 这个,测试,推{ 姓名:鲍勃, 年龄:33 }; } 测试回路{ 让我们来测试一下{ console.log>>>+test.name++test.age; } } } var a=新约; a、 testLoop 在中,您需要使用const、let或var声明循环变量测试:

类种皮{ testArray=[]; 建造师{ 这个,测试,推{ 姓名:乔, 年龄:70 }; 这个,测试,推{ 姓名:迈克, 年龄:50 }; 这个,测试,推{ 姓名:鲍勃, 年龄:33 }; } 测试回路{ 让我们来测试一下{ console.log>>>+test.name++test.age; } } } var a=新约;
a、 testLoop 绑定构造函数中的函数,因为它不被保留

类种皮{ testArray=[]; 建造师{ 这个,测试,推{ 姓名:乔, 年龄:70 }; 这个,测试,推{ 姓名:迈克, 年龄:50 }; 这个,测试,推{ 姓名:鲍勃, 年龄:33 }; this.testLoop=this.testLoop.bindthis; } 测试回路{ 用于此的常量测试。testArray{ console.log>>>+test.name++test.age; } } } var a=新约;
a、 testLoop;对于this.testArray的const test是否可以将test of更改为let test of?它应该是:对于let test of…我要指出的是,您不需要多次连续调用.push。只需将所有对象作为参数添加到一个调用中,它们就会被添加到数组中。this.testArray.push{…},{…},{…}@Coder547:我认为在类定义中,您是在严格模式下运行的,这设置了更严格的要求。在类外,您可以使用use strict declarative手动将代码放入该模式。最好澄清一下,在这种情况下,他也可以使用const关键字。在OP的情况下,这是完全不相关的,也不是必需的。@YuryTarabanko,但他正试图引用此.testArray right,这将是undefinedIt。他像使用.testLoop一样使用此方法,因此它将有一个作为上下文的。你可以试试。唯一的问题是OP没有声明循环变量,类主体是在严格模式下计算的。如果a.testLoop没有正确地将其设置为a对象,那么方法几乎毫无用处。如果要在调用之前将方法与对象分离,则需要绑定它。