call函数封装实现
/**
* 自定义函数对象的call方法
* @param {*} Fn
* @param {*} obj
* @param {...any} args
*/
// 函数功能:执行fn, 使this指向obj, 并将后面的n个参数传给fn(功能等同于函数对象的call方法)
function call(Fn, obj, ...args){
// 如果obj是undefined/null, this指定为全局对象
if (obj===undefined || obj===null) {
obj = globalThis; // 全局对象
}
// 为obj添加临时的方法,
obj.temp = Fn;
// 调用temp方法
// 通过obj来调用这个方法 ==> 也就会执行temp函数 ==> 此时fn中的this肯定为obj
let result = obj.temp(...args);
// 删除临时方法temp
delete obj.temp
// 返回Fn执行的结果
return result
}
全栈爱好者,欢迎交流学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏