call和apply都用于调用函数,第一个参数将用作函数内 this 的值。然而,call接受逗号分隔的参数作为后面的参数,而apply接受一个参数数组作为后面的参数。
1 | function add(a, b) { |
call和apply都用于调用函数,第一个参数将用作函数内 this 的值。然而,call接受逗号分隔的参数作为后面的参数,而apply接受一个参数数组作为后面的参数。
1 | function add(a, b) { |
粗略地讲,函数的调用方式决定了this
的值,谁调用的函数,this
就指向谁。this
取值符合以下规则:
1.如果函数作为构造函数用,那么其中的this
就代表它即将new
出来的对象。
2.如果appl
、call
或bind
方法用于调用、创建一个函数,this的值就取传入的对象的值。
3.如果函数作为对象的一个属性时,并且作为对象的一个属性被调用时,函数中的this
指向该对象。比如当obj.method()
被调用时,函数内的 this
将绑定到obj
对象。