为什么要delete context.fn

2020-10-15 09:31发布

问题:

Function.prototype.myApply = function(context) {
if (typeof context === 'undefined' || context === null) {
context = window
}
context.fn = this
let args = arguments[1]
let result
if (args) {
result = context.fn(...args)
} else {
result = context.fn()
}
delete context.fn
return result
}

delete context.fn这一步的意义是什么,有什么好处吗?

回答1:

如果没有那一步的话
那么当你调用 myApply() 之后
fn 这个方法就会留在调用的对象上
这显然是不对的



回答2:

按我的理解应该是把分配的内存给释放掉



标签: apply