如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里
在 JavaScript 中
如果我们有一个对象
二者的作用完全一样,知识接受 参数 的方式不太一样。
在 Javascript 中,多次
三种方法的作用
call、apply 和 bind 是 Function 对象自带的三个方法,都是为了改变函数体内部 this 的指向。
call、apply 和 bind 三者第一个参数都是 this 要指向的对象,也就是想指定的上下文。
call、apply 和 bind 三者都可以利用后续参数传参。
bind 是返回对应 函数,便于稍后调用;apply 、call 则是立即调用 。
举个栗子
banana= {color : 'yellow'} ,我们不想重新定义 say 方法,那么我们可以通过 call 或 apply 用 apple 的 say 方法:
call 和 apply 的区别
call 是把参数按顺序传递进去,而 apply 则是把参数放在 数组 里面。
类(伪)数组使用数组方法
验证一个对象的类型可以用
bind() 方法
bind() 方法会创建一个 新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入 bind() 方法的第一个参数 作为 this,传入 bind() 方法的 第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数。
注意:bind()方法创建的函数不会立即调用,在下面的例子中,最后 func() 才调用了函数,这是它与 call和apply的区别。
bind() 是无效的。更深层次的原因, bind() 的实现,相当于使用函数在内部包了一个 call / apply ,第二次 bind() 相当于再包住第一次 bind() ,故第二次以后的 bind 是无法生效的。