Javascript中如何显示setter/getter的函数体?

In Javascript, how to display the function body of a setter/getter?

例如(来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set),我像这样初始化一个对象:

var o = {
  set current (str) {
    this.log[this.log.length] = str;
  },
  log: []
}

如何在控制台打印o.current的函数体?如果o.current是一个简单的方法,它可以通过o.current.toString()来完成。但是,我不知道如何打印"getter"或“setter的函数体" 方法。

有人对此有想法吗?

您可以为此使用 __lookupSetter__。所以只需调用 o.__lookupSetter__('current').toString() 应该给你你想要的输出。 Source

更新

虽然这已经被弃用了。您应该改用标准 Object.getOwnPropertyDescriptor 。因此调用 Object.getOwnPropertyDescriptor(o, 'current').set.toString() 将适用于您的用例。 Source