javascript 中 apply call bind的区别

call,apply,bind 都是改变上下文的,但是call apply是立即执行的,而bind是返回一个改变上下文的函数副本
call返回的参数依次传入,而apply返回的参数是一个数组,三个参数一下call较好,而参数较多时,apply函数的返回数组效率较高

var Person= {
    name: "张三",
    age: 23
}

function getName(x, y) {
    console.log(x + "," + y);
    console.log(this);
    console.log(this.name);
}

// 将getName()函数的this改变为Person
getName.apply(Person, [1, 2]); 
// aa.call(Person, 4, 5) // call方法
// aa.bind(Person, 4, 5)() // bind返回的是一个函数副本,所以需要自执行一次
/*
*输出
*1,2
*{name: '张三', age: 23}
*张三
*/
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容