首页 > 解决方案 > 有没有办法 toString 一个 getter 或 setter 函数?

问题描述

如果我们运行以下代码:

const a = () => 1 + 2 + 3
console.log(a.toString())

...我们应该得到:

() => 1 + 2 + 3

这适用于普通函数,但如果我们想对 getter 和 setter 函数执行 toString() 来查看代码怎么办?这个例子表明它不起作用。

标签: javascript

解决方案


如果您使用点表示法访问该属性,您将调用 getter。要检查getter,请检查对象或原型上的属性,而不是使用getOwnPropertyDescriptor

const obj = {
  get a() {
    return 1 + 2 + 3;
  }
};
console.log(Object.getOwnPropertyDescriptor(obj, 'a').get);

class C {
  get a() {
    return 1 + 2 + 3;
  }
};
console.log(Object.getOwnPropertyDescriptor(C.prototype, 'a').get);


推荐阅读