17 JavaScript 中的call和apply

这篇具有很好参考价值的文章主要介绍了17 JavaScript 中的call和apply。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

17 JavaScript 中的call和apply

对于咱们逆向工程师而言. 并不需要深入的理解call和apply的本质作用. 只需要知道这玩意执行起来的逻辑顺序是什么即可

在运行时. 正常的js调用:

function People(name, age){
    this.name = name;
    this.age = age;
    this.chi = function(){
        console.log(this.name, "在吃东西")
    }
}
p1 = new People("zzc", 18);
p2 = new People("wyy", 20);
p1.chi();	// zzc 在吃东西
p2.chi();	// wyy在吃东西

接下来, 我们可以使用call和apply也完成同样的函数调用

function People(name, age){
    this.name = name;
    this.age = age;
    this.chi = function(what_1, what_2){
        console.log(this.name, "在吃", what_1, what_2);
    }
}
p1 = new People("zzc", 18);
p2 = new People("wyy", 20);
p1.chi("馒头", "大饼");		// zzc在吃 馒头 大饼
p2.chi("大米饭", "面条");	// wyy在吃 大米饭 苗条

function eat(what_1, what_2){
    console.log(this.name, "在吃", what_1, what_2);
}

// call的语法是: 函数.call(对象, 参数1, 参数2, 参数3....)
// 执行逻辑是: 执行函数. 并把对象传递给函数中的this.  其他参数照常传递给函数
eat.call(p1, "查克拉", "元宇宙");		// zzc 在吃 查克拉 元宇宙

apply和他几乎一模一样. 区别是: apply传递参数要求是一个数组。文章来源地址https://www.toymoban.com/news/detail-677369.html

eat.apply(p1, ["苞米茬子", "大饼子"]);		// zzc 在吃 苞米茬子 大饼子

到了这里,关于17 JavaScript 中的call和apply的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端 JS 经典:apply、call、bind

    1. 概念 都是用来改变函数中 this 指向的。区别在于 apply、call 传参方式不一样,调用后,直接执行函数。bind 调用后,返回一个函数体,不直接执行函数。 2. 为什么用 那为什么要改变 this 指向呢。正常情况下,谁调用函数 this 就指向谁。那调用这个函数的那个谁,要访问另一

    2024年02月07日
    浏览(41)
  • (十六)call、apply、bind介绍、区别和实现

    函数中的this指向是在函数被调用的时候确定的,也就是执行上下文被创建时确定的。在一个执行上下文中,this由 调用者 提供,由 调用函数 的方式来决定。 arguments只在函数(除了箭头函数)中存在的类数组参数对象,储存了我们传入的所有参数。 call(this, 参1, 参2, ...) ,第

    2024年04月23日
    浏览(40)
  • js--手写call和apply方法干货注释满满

    我们都知道js中call和apply都是改变this指向的,这篇文章我们一起来实现call和apply的底层吧!我们先来看一下js中的call和apply的用法 一.用法 1.call用法 传递参数逗号分隔 2.apply用法 传递参数为数组 二.手写实现call 1.手写myCall改变this指向 这里this指向已经改变,但是还不可以传递

    2024年02月06日
    浏览(43)
  • 前端小技巧: TS实现bind函数,call函数,以及apply函数

    bind 函数实现 返回一个新函数,但是不执行 实际上,原生js中,bind 底层用的就是 apply bind是返回一个新函数,不执行 call和apply是会立刻执行的 call 函数实现 apply 函数实现 总结 绑定 this 传入执行参数 分析: 如何在函数执行时,绑定this 如:const obj = {x: 100, fn() {this.x}} 执行

    2024年02月08日
    浏览(38)
  • 【延伸学习】TS(JS)类的继承(prototype、call、apply,extends)

    PS:文末附上完整的代码(是在CocosCreator下运行的) 一. 基(父)类   基类包含三个成员变量(名字、年龄)还有一个后面用于测试的数组,两个原型方法(输出名字,输出年龄),还有一个类似静态函数的方法。 基类唯一测试的,就是用类名可以直接调用eat这个静态方法。

    2024年01月25日
    浏览(42)
  • Js:apply/call/bind、作用域/闭包、this指向(普通,箭头,JS/Vue的this)

    共同点: apply()、call() 和 bind() 方法 三者作用都是 改变this指向。 接收的第一个参数都是this要指向的对象 区别: apply只有两个参数,第二个参数为数组; call和bind传参相同,多个参数依次传入的; call和apply都是对函数进行直接调用(立即执行),而bind方法不会立即调用函数

    2023年04月08日
    浏览(94)
  • 54-函数的3种定义,函数的4种调用:函数模式调用,方法模式调用,构造函数模式调用,apply call bind调用

    一.函数的3种定义  1.函数的声明定义:具有声明提升 2.函数的表达式定义 3.构造函数定义 var 变量 = new F unction(\\\"形参1\\\",\\\"形参2\\\",\\\"形参3\\\",\\\"方法体\\\"); 二.函数的4种调用 1普通模式调用 2. 内联模型 函数模式调用, this 指向 window  

    2024年01月25日
    浏览(48)
  • JavaScript中apply函数方法多种使用方法!

    在JavaScript中, apply 是函数对象的一个方法,用于调用一个函数,并指定函数内部的 this 上下文以及函数的参数列表。它与另一个方法 call 功能类似,但是参数传递的方式略有不同。 apply 方法的语法如下: thisArg : 在调用函数时指定的 this 上下文,即函数内部的 this 指向的对

    2024年03月10日
    浏览(61)
  • 章鱼网络 Community Call #17|打造全新 Omnity 跨链协议

    香港时间2024年1月8日12点,章鱼网络举行第17期 Community Call。 对于 Octopus Community 而言,2023年是一个分水岭。我们如期兑现我们的承诺,成功上线了包括 $NEAR Restaking 和 Adaptive IBC 在内的完整的 Octopus 2.0。 自从我们在2023年4月公布这一计划以来,整个团队倾尽全力使这个蓝图变

    2024年01月20日
    浏览(79)
  • 【Call for papers】NeurIPS-2023(CCF-A/人工智能/2023年5月17日截稿)

    The conference was founded in 1987 and is now a multi-track interdisciplinary annual meeting that includes invited talks, demonstrations, symposia, and oral and poster presentations of refereed papers. Along with the conference is a professional exposition focusing on machine learning in practice, a series of tutorials, and topical workshops that provide a l

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包