18 函数上下文

函数上下文
  为什么要讲到函数上下文:
    确定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])//调用函数,传入参数是数组

 

  

原文地址:https://www.cnblogs.com/xuanjian-91/p/10267080.html