首页 > 解决方案 > 在Javascript中更改构造函数类中属性的默认值

问题描述

我在下面有一个班级行动。定义了_actionOver_peopleAffected的默认值。

class Action {
    constructor(staffName, description, actionOver, peopleAffected){
        this._staffName=staffName;
        this._description=description;
        this._actionOver=false;
        this._peopleAffected=0;
    }

现在我定义这个类的一个新对象并更改actionOver_peopleAffected的值

let a= new Action ('Raul', 'Goal 1: Qaulity Education', true,10);

当我在控制台中打印这个

console.log(a._actionOver);   *// gives false
console.log(a._peopleAffected);  *// gives 0*

如果我更改了对象中的值,它不应该给出true10作为输出吗?如果不是,如何更改构造函数属性的默认值?

标签: javascriptclassdefault-constructor

解决方案


您只是忽略构造函数参数并始终分配相同的初始值。
我猜您实际上想使用默认参数值

class Action {
    constructor(staffName, description, actionOver = false, peopleAffected = 0){
//                                                ^^^^^^^^                ^^^^
        this._staffName = staffName;
        this._description = description;
        this._actionOver = actionOver;
//                         ^^^^^^^^^^
        this._peopleAffected = peopleAffected;
//                             ^^^^^^^^^^^^^^
    }

推荐阅读