js 实现apply

 

手写apply

/**
 * Function.apply(this: Function, thisArg: any, argArray?: any): any
 * @param {*} context 
 */
Function.prototype._apply = function(context){
    if(typeof this !== 'function'){
        throw 'Error'
    }
    context = context || window
    const args = [].concat(arguments[1] || [])
    context.fn = this
    const result = context.fn(...args)
    delete context.fn
    return result
}

const fn = function(){console.log(this);return {test:1,...this}}
fn._apply({_apply:1})
posted @   IslandZzzz  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
历史上的今天:
2019-01-25 Struts2出现的问题:
点击右上角即可分享
微信分享提示