由于 ES5 不支持Function#name. 我正在寻找一种方法来模拟该功能。虽然很多人推荐使用Function#toString,但其他人强烈建议不要使用。
那么使用下面的代码来获取函数名有什么风险呢?
if (!Object.hasOwnProperty(Function.prototype, "name")) {
Object.defineProperty(Function.prototype, "name", {
configurable: false,
enumerable: true,
get: function() {
var result = /function\s+([^\s(]+)/.exec(this.toString());
return result ? result[1] : "";
}
});
}
由于 ES5 不支持箭头函数,我真的不知道风险在哪里。
慕村9548890
相关分类