js Apply 和call 的作用及区别

本文探讨了JavaScript中Apply和Call的功能及其区别。当函数中的this没有明确指向时,默认指向window。通过Call和Apply可以强制改变this的指向,如指定为字符串或对象。Call和Apply的主要差异在于传递参数的方式:Call直接传递参数列表,而Apply则接受一个包含参数的数组。在实际应用中,两者在指定this和参数传递上有所不同,但效果相似。
摘要由CSDN通过智能技术生成

**

Apply 和call 的作用及区别

**

  •  Call和apply的作用都是强制改变this的指向
     Call和apply的区别在于传参时的不同,call和apply的的第一个参数都是对象,第二个参数call传的是单个参数,
     而apply传的是一个数组或者是一个参数
    

当this没有指向时,this指向window

function show(a, b) {
console.log(this);//window
console.log(a,b);//1,2
}
show(1,2);

当用call强制this指向时

function show(a, b) {
console.log(this);//String { “show” }
console.log(a,b);//1,2
}
show.call(“show”,1,2);

这时的this就被强制改为字符串show
当然也可以是个对象

var num = {
a:3,
b:4
}
function show(a, b) {
console.log(this.a,this.b);//3,4
}
show.call(num);

当call传入对象num时,this就指向对象num,这时this.a 就是num的a,th

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值