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对象。