首页 > 其他分享 >手写call方法

手写call方法

时间:2024-09-05 16:35:41浏览次数:11  
标签:console log mycall call result thisArg 手写 方法

<script>
    // <!-- 实现mycall方法, 功能和调用形式与call一致 -->

    // 原型定义一个mycall方法, 大家都能调用
    Function.prototype.mycall = function (thisArg, ...argN) {
        // console.log('mycall方法被调用了');
        // 设置this并调用原函数
        // 接收剩余参数
        // 将动态添加的属性删掉
        // 返回结果
        thisArg.f = this
        const res = thisArg.f(...argN)
        delete thisArg.f
        return res
    }

    const person = {
        name: 'mandy',
        age: 21
    }

    function fun(numA, numB) {
        console.log(this);
        console.log(numA, numB);
        return numA + numB;
    }

    const result = fun.mycall(person, 10, 11)
    console.log('result:' + result);
    const result2 = fun.call(person, 20, 21)
    console.log('call - result:' + result2);
</script>

调试结果:

标签:console,log,mycall,call,result,thisArg,手写,方法
From: https://www.cnblogs.com/mandyGuan12/p/18398775

相关文章

  • 业务复杂度治理方法论--十年系统设计经验总结
    一、复杂度综述1、什么是复杂度软件设计的核心在于降低复杂性。--《软件设计的哲学》业界对于复杂度并没有统一的定义,斯坦福教授JohnOusterhout从认知负担和工作量方面给出了一个复杂度量公式子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得到系统的整体复杂度C这里的......
  • 记录一个opencv的imread方法无法读取成功的问题,【设计到visual studio和静态库(lib)匹配
    一、为什么会遇到这个问题公司需要对多图进行拼接,经过多番查找发现了OpenStitching这个库。可以实现多图拼接。在python段尝试了之后感觉效果不错,所以使用VisualStudio进行C++开发。在读取图片的时候发现imread方法无论怎么样都无法读取到图片。二、解决办法我一开始以为是路......
  • 业务复杂度治理方法论--十年系统设计经验总结
    一、复杂度综述1、什么是复杂度软件设计的核心在于降低复杂性。--《软件设计的哲学》业界对于复杂度并没有统一的定义,斯坦福教授JohnOusterhout从认知负担和工作量方面给出了一个复杂度量公式  子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得到系统的整......
  • 大模型微调方法和技术路线
    带你快速了解大模型微调原理目前传统的Fine-Tuning有两个痛点问题:降低语义差异(BridgethegapbetweenPre-trainingandFine-tuning):预训练任务主要以MaskedLanguageModeling(MLM)为主,而下游任务(DownStreamTask)则重新引入新的训练参数,因此两个阶段的目标通常有较大......
  • C++程序的发布部署方式及缺失依赖库dll的解决方法
    主要对Windows平台上C++项目开发过程中库目录进行梳理及程序发布要注意的相关事项进行总结,希望对其他开发者有一定的借鉴意义。1.问题的提出在最近的项目中,主要工作是为SketcchUp平台开发基于Ruby的扩展功能库,这种库文件是以.so为后缀的形式提供,用C++语言来编写实现。当我在自己......
  • 利用数据分析提升SEO排名的7种方法
    我们都听过“大数据分析”这个词。科技让我们能够清晰地了解我们的活动和内容的表现——向我们提供了关于受众的宝贵信息,甚至可以精确到他们在Google和其他搜索引擎上使用的具体搜索词。你已经在你的业务中使用数据分析了吗?如果是,你有利用它来改进你的SEO策略以获得更好的排名......
  • docker制作tomcat镜像方法
    docker制作tomcat镜像方法【说明】制作tomcat镜像,需要在官网下载tomcatbinary压缩包。tomcat官网:https://tomcat.apache.org/download-90.cgi【配置方法】新建一个/opt/tomcat/目录,将下载tomcat与jdk安装包上传并解压缩:#mkdir-p/opt/tomcat;cd/opt/tomcat#......
  • openstack云平台删除云主机失败解决方法
    openstack云平台删除云主机失败解决方法【现象】​在云平台页面删除实例失败,提示报错:Failedtoexecuteaction(server_force_delete)forserver(0504ad86-b423-4a6b-bcb7-2339b0108d54),error:Instance0504ad86-b423-4a6b-bcb7-2339b0108d54couldnotbefound.......
  • 重磅活动!南开大学赵宏教授倾情分享AI挑战下的教育教学新理念与新方法
    人工智能是科技发展的前沿领域,也是推动新质生产力形成的关键动力。当前,各个高校正积极探索人工智能对高等教育的改革,以培养适应未来社会发展需求的新型人才。 本次活动旨在传播 AI挑战下的教育教学新理念与新方法,推动人才培养新路径的开拓与完善。 南开大学计算机学院赵宏教授......
  • 快码住微信恢复聊天记录最简单方法
    微信紧密编织,不仅外界交流的窗口,更是情感与记忆的宝库。一次意外的手机故障,让着一场数据灾难——微信中的大量珍贵记录不翼而飞。那些记录着家人关爱、朋友欢笑和工作重要信息的对话,仿佛一夜之间被时光吞噬,只留下空洞的记忆轮廓,充满遗憾。下面我告诉大家这么快速恢复微信聊天记......