04 # 手写 apply

简介: 04 # 手写 apply

apply

apply 的作用跟 call 的作用是一样的,只不过传递的参数是以数组的形式

手写 apply

<script>
    Function.prototype.kaimoApply = function (content, args) {
        // 没有东西指向 window,将 content 包装成对象
        content = content ? Object(content) : window;
        // 执行 this() 改变不了 this 指向,需要赋值给属性
        content.f = this;
        let res = args ? content.f(...args) : content.f();
        // 再删除多余的 f 参数
        delete content.f;
        return res;
    };
    function fn(num1, num2) {
        console.log("this----->", this);
        return num1 + num2;
    }
    let obj = {
        name: "kaimo313"
    };
    let res = fn.apply(obj, [1, 2]);
    console.log("res----->", res);
    let res2 = fn.kaimoApply(obj, [1, 2]);
    console.log("res2----->", res2);
</script>



459128534dea4c4d87883286ce8735f4.png


目录
相关文章
|
机器学习/深度学习 自然语言处理 物联网
探索自动化测试框架的演变与未来趋势
随着软件开发行业的蓬勃发展,软件测试作为保障软件质量的重要环节,其方法和工具也在不断进化。本文将深入探讨自动化测试框架从诞生至今的发展历程,分析当前主流框架的特点和应用场景,并预测未来的发展趋势,为软件开发团队选择合适的自动化测试解决方案提供参考。
|
C#
C#小知识之中英文转换、去空格
# 一、中英文转换 ## 1、安装NPinYin ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-1f77b9b6.png?x-cos-security-token=kcWkaWALSQ5t0gKzZRkVwYOOBJMLQ8Ra8df6748cc017b8b22443671efb8aed172ct0qMmH-Si3jPfLmVc91udBHTdfdp2n1Qk-hBfLRQF5l22U2cHOMKfU7b0bWfl1t
418 0
C#小知识之中英文转换、去空格
|
人工智能 自然语言处理 数据可视化
🚀从零到英雄!AI Prompt赋能商业数据分析,新手也能成专家
【8月更文挑战第1天】在数字化时代,商业数据分析至关重要但门槛高。AI Prompt技术革新了这一领域,使新手能迅速成为专家。AI Prompt通过自然语言指令驱动AI执行数据分析任务,无需编程背景即可享受数据洞察。例如,新分析师可通过简单指令分析销售数据,计算关键指标并生成可视化报告。随着技能提升,可设计更复杂的指令满足多样需求。AI Prompt还能自我学习优化,提高分析质量和效率。总之,这项技术简化了数据分析流程,加速了人才的成长路径。
476 0
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之重新拉取表结构可以如何实现
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
120 5
|
消息中间件 缓存 数据库
RabbitMQ 七种队列模式应用场景案例分析(通俗易懂)
与发布者进行可靠的发布确认,发布者确认是RabbitMQ扩展,可以实现可靠的发布。在通道上启用发布者确认后,RabbitMQ将异步确认发送者发布的消息,这意味着它们已在服务器端处理。
RabbitMQ 七种队列模式应用场景案例分析(通俗易懂)
|
网络协议 安全 Java
Xctf攻防世界-Misc基础题攻略
Xctf攻防世界-Misc基础题攻略
Xctf攻防世界-Misc基础题攻略
|
Java Maven
pom文件中maven-assembly-plugin插件
使用Maven对Web项目进行打包,默认为war包;但有些时候,总是希望打成zip包(亦或其他压缩包),这时就用到了maven-assembly-plugin插件
570 0
|
机器学习/深度学习
带你读《2022技术人的百宝黑皮书》——大淘宝技术斩获NTIRE视频增强和超分比赛冠军(内含夺冠方案)(8)
带你读《2022技术人的百宝黑皮书》——大淘宝技术斩获NTIRE视频增强和超分比赛冠军(内含夺冠方案)(8)
248 0
|
安全 数据中心
5分钟带您了解DSL、以太网线缆和光纤之间的区别,值得收藏!
DSL是一种以电话线为传输介质的宽带接入技术,DSL有很多种模式,包括HDSL、SDSL、VDSL、ADSL、RADSL,统称为xDSL。
582 0
5分钟带您了解DSL、以太网线缆和光纤之间的区别,值得收藏!
|
域名解析 Ubuntu 物联网
服务器使用
服务器使用