/*
自定义函数对象的apply方法
*/
export function apply(fn, obj, args) {
console.log('apply()')
// 如果obj是undefined/null, this指定为全局对象
if (obj===undefined || obj===null) {
// return fn(...args)
obj = globalThis; // 全局对象
}
// 给obj添加一个临时方法, 方法指向的函数就是fn
obj.tempFn = fn
// 通过obj来调用这个方法 ==> 也就会执行fn函数 ==> 此时fn中的this肯定为obj
const result = obj.tempFn(...args)
// 删除obj上的临时方法
delete obj.tempFn
// 返回fn执行的结果
return result
}
apply函数的封装实现
发布时间 2023-09-09 16:37:18作者: Trkly