call、apply、bind的基本使用

基本使用

call、apply、bind的核心功能都是改变函数的this指向,但彼此之间也有一些差别。

call

改变this指向且执行函数,额外参数以参数列表形式传入


let context = {
    name:'神秘的宝爷'
}

const myFn = function(age,height){
    console.log(this.name+':'+age+':'+height)
}

myFn.call(context,25,'180cm')  // 神秘的宝爷:25岁:180cm

复制代码

apply

与call几乎一样改变this指向且执行函数,额外参数以数组形式传入


let context = {
    name:'神秘的宝爷'
}

const myFn = function(age,height){
    console.log(this.name+':'+age+':'+height)
}

myFn.call(context,[25,'180cm'])  // 神秘的宝爷:25岁:180cm

复制代码

bind

改变this指向,的函数,而是返回一个this被改变的function,参数以参数列表形式传入


let context = {
    name:'神秘的宝爷'
}

const myFn = function(age,height){
    console.log(this.name+':'+age+':'+height)
}

let myFn2  = myFn.bind(context)

myFn2(25,'180cm') // 神秘的宝爷:25岁:180cm
发布了127 篇原创文章 · 获赞 150 · 访问量 48万+

猜你喜欢

转载自blog.csdn.net/qq_40259641/article/details/103045320