【发布时间】:2019-09-10 17:02:56
【问题描述】:
我有以下一段代码:
class Set {
constructor() {
console.log("New Set!");
}
get repsCompleted() {
return this._repsCompleted;
}
set repsCompleted(value) {
this._repsCompleted = value;
}
}
class Exercise {
constructor(name) {
console.log(name);
this.name = name;
}
get sets() {
return [new Set(), new Set(), new Set()]
}
}
let barbellSquat = new Exercise("Barbell Squat");
let updatedBarbellSquat = updateRepsCompleted(barbellSquat);
console.log(updatedBarbellSquat);
function updateRepsCompleted(exercise) {
for (var i = 0; i < exercise.sets.length; i++) {
exercise.sets[i].repsCompleted = 5;
}
return exercise;
}
我有一个课堂练习,里面有一个属性sets,它是一个Set类型的对象数组。
所以我从Exercise 类中创建了一个新对象,然后将该对象传递给一个函数,该函数的目的是更新设置的对象并将属性“repsCompleted”设置为5。
然后我 console.log 这个练习对象,却发现 repsCompleted 是未定义的。我不知道为什么。
代码如下:
【问题讨论】:
-
不要使用
Set,这是一个内置的JavaScript类型。
标签: javascript ecmascript-6 es6-class