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

时间:2015-06-23 10:10:01

标签: javascript node.js setter ecmascript-6 ecmascript-5

例如(来自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”方法的函数体

有没有人有这方面的想法?

1 个答案:

答案 0 :(得分:3)

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

<强>更新

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