函数上下文
为什么要讲到函数上下文:
确定this的指向谁
怎么做:
this指向当前对象,确定当前对象是谁,要看上下文,看看是谁调用的
this可以写在什么地方:
任何函数中都能写this,this指向当前对象,当前对象是谁,在调用时决定
this指向对象:
1、点击法,中括号法调用的,
obj.fn() obj['fn']()//fn中的this指向obj对象
arguments[0](1,2,3)//arguments[0]表示一个方法,这个方法的this指向arguments对象
2、事件源
3、new对象时,
this指向新创建的对象
this指向window
单独执行方法的,默认省略了window
内部函数的this指向window
事件处理函数不一定是匿名函数,匿名函数只是简写
apply或call
为什么用这2个方法,
给方法中的this指向对象,有时候调用方法需要绑定对象才能调用
sum.call(1,2,3,4)//调用sum函数,传入参数挨个传入
sum.call(obj,1,2,3,4)//给sum方法的this指向obj对象,并调用sum函数,这个obj对象可以是对象,函数等广义上的对象,但不能是基本类型数据
sum.apply(obj,[1,2,3,4])//调用函数,传入参数是数组