我无法在JavaScript类中使用二传手,因为它不是函数

时间:2019-08-20 08:09:37

标签: javascript node.js class

我尝试在类Test中使用setter方法,但日志返回“ TypeError:testObject.id不是函数”

class test {

    constructor() {
        this._id = 0;
    }

    get id(){
        return this._id;
    }

    set id(newId){
        this._id = newId;
    }
}

const testObject = new test();
console.log(testObject.id); // return 0
testObject.id(12); //return TypeError: myTest.id is not a function
console.log(testObject.id);

我希望输出将是12,但我会收到TypeError。

1 个答案:

答案 0 :(得分:1)

要使用设置器,您需要进行赋值,而不是编写函数调用:

testObject.id = 12;

实时示例(我还将名称更改为Test; JavaScript中的压倒性约定是大写的构造函数):

class Test {

    constructor() {
        this._id = 0;
    }

    get id(){
        return this._id;
    }

    set id(newId){
        this._id = newId;
    }
}

const testObject = new Test();
console.log(testObject.id); // 0
testObject.id = 12;
console.log(testObject.id); // 12