javaSccript---call()、 bind()、 apply()的区别

call()、apply()和bind()都是JavaScript中用于改变函数调用时的上下文(this)的方法。它们接收的第一个参数是this的新值,后续参数是传递给函数的参数。call()和apply()立即执行函数,而bind()返回一个新函数。call()接受单独的参数,apply()接受一个参数数组,bind()则可以预设多个参数。
摘要由CSDN通过智能技术生成

call()、apply()、bind() 都是用来重定义 this 这个对象的

语法:

function.apply(thisArg, [argsArray])//argsArray 是一个可选的数组

function.call(thisArg, arg1, arg2, ...)//arg1、arg2、... 是将传递给函数的参数列表

function.bind(thisArg, arg1, arg2, ...)//arg1、arg2、... 是一些可选的参数,这些参数将在调用新函数时作为参数列表传递给原函数

function test(a, b) {
  console.log(a + b);
}
test.call({ name: "call" }, 1, 2); //3
test.apply({ name: "apply" }, [2, 3]); ///5
const test1 = test.bind({ name: "bind" }, 4);
console.log(test1); //[Function: bound test]
test1(2); //6

相同点:第一个参数thisArg 表示函数要绑定的上下文,是用来改变函数this指向的,第二个参数是是用于传参

不同点:

call 和apply可以直接调用,bind不会立即调用函数,而是会返回一个新的函数

call和bind可以传递多个参数,apply只能传递一个参数 (数组或者伪数组)

JavaScript 中 call()、apply()、bind() 的用法 | 菜鸟教程其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面: 例 1 obj.objAge; // 17 obj.myFun() // 小张年龄 undefined 例 2 shows() // 盲僧 比较一下这两者 this 的差别,第一个打印里面的 this 指向 obj,第二个全局声明的 shows() 函数 this 是 window ; 1,call()、appl..https://www.runoob.com/w3cnote/js-call-apply-bind.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值