二传手/盖特

时间:2018-12-03 11:36:49

标签: javascript class constructor setter getter

有没有只为类对象设置setter / getter的方法?我的意思是,是否在课堂上为get设置了set / this?例如:

class something {
    constructor() {
        // ...
    }
    get this() {
      return 'Fizz buzz'
    }
}

const somethingelse = new something
console.log(something) // "Fizz buzz"

这就是我想要的。如果我希望它的工作原理完全相同,则需要执行const {this} = new something,这是我不想使用的。

2 个答案:

答案 0 :(得分:1)

不,整个对象没有设置器/获取器。 setter / getter始终是一个属性。您分配/评估对属性或变量的引用,对象本身不参与其中。访问时,您的对象不能表现得像原始字符串。最接近的东西是

class Something {
    valueOf() {
        return 'Fizz buzz';
    }
}

const somethingelse = new Something;
console.log(something.valueOf()); // "Fizz buzz"
console.log(String(something)); // "Fizz buzz"

答案 1 :(得分:0)

首先,任何保留变量都不应被覆盖。因此,您尝试做的是不好的做法。

How does the "this" keyword work?

但是,如果您希望此代码指向其他范围,则可以使用call / apply函数轻松地在本地执行此操作,或者使用bind函数永久地执行此操作。