关于apply call bind一点点想法

2017-05-01  本文已影响0人  赵BW

这几天在看别人的代码的时候,发现大神把apply、call、bind,用的出神入化。感觉自己需要整理一波。今天把自己的心得,整理一下。持续更新。



apply

方法在指定 this值和参数的情况下调用某个函数


call

方法在指定 this值和参数的情况下调用某个函数


问题来了,这两个方法功能不是一样的么?
是的,他们是一样的!有一点点区别,就是第二个参数

只有一个区别,就是call()方法接受的是若干个参数的列表,而apply()方法接受的是一个包含多个参数的数组。

bind

创建一个新的函数, 当被调用时,它的this关键字被设置为提供的值 ,在调用新函数时,提供任何一个给定的参数序列。

var person = {
  name:'zhaobw'
}
var student = {
  name:'tom'
}
function Out(){
  console.log(this.name);
}
var p1 = Out.bind(person);
var s1 = Out.bind(student);
p1();
s1();

三个函数进行对比

概念都说了。举几个例子。




上一篇 下一篇

猜你喜欢

热点阅读