来个有挑战的问题,有关Function.prototype

fangzhe fangzhe 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
来个有挑战的问题,各位高手请开动脑筋……

用js实现类似Function的caller属性的功能
原因是ECMA-262 Section 10.1.8规定了arguments.callee,但是没有caller,所以……

初步设想:
JS引擎里调用函数都是通过Function.prototype.call,可以通过以下重载用apply实现call
Function.prototype.call = function (obj) {
arguments.slice = Array.prototype.slice;
return this.apply(obj, arguments.slice(1));
}
在这里应该能通过stack存储函数调用顺序

请使用Gecko内核的浏览器调试

谢谢
...全文
评论 13
收藏 已收藏
分享
返回顶部
fangzhe
非技术区 2,131 成员 37,911 内容