javascript - 有没有办法 toString 一个 getter 或 setter 函数?
问题描述
如果我们运行以下代码:
const a = () => 1 + 2 + 3
console.log(a.toString())
...我们应该得到:
() => 1 + 2 + 3
这适用于普通函数,但如果我们想对 getter 和 setter 函数执行 toString() 来查看代码怎么办?这个例子表明它不起作用。
解决方案
如果您使用点表示法访问该属性,您将调用 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);
推荐阅读
- sql - PostgreSQL:如何对未包含列的联合查询进行排序?
- node.js - Get full command-line string from child_process.spawn
- c# - Automapper 中的多个条件映射
- javascript - How to prevent d3.drag().on('end' from firing .on('click'
- python - 如何在python中检索上下文菜单的窗口处理程序
- c++ - 使用 Rcpp 从列表中迭代采样
- python - Pandas DataFrame 重新索引到最近
- python - 如何使用opencv丢弃图像的边缘?
- unity3d - Unity Asset Bundles - Which Files Do I Deploy?
- django - OfflineGenerationError - Key not in Manifest Json