this
###this
	我们需要根据 "调用位置" 上函数的 "调用方式" 来确定函数中this使用的   "绑定规则"
	
###绑定规则
	默认绑定
		this==>winow对象
	隐式绑定
		1.this==>函数引用的上下文对象
		2.隐式丢失:发生引用传递时会有隐式丢失的情况
			引用赋值
			参数传递
		3.隐式丢失解决方案
			使用硬绑定(一种显示绑定的形式)		
	显示绑定
		this==>我们指定的对象
	new绑定
		this==>实例对象
	
###优先级
	new绑定 > 显示绑定 > 隐式绑定 > 默认绑定
	
###正常情况下的规则
	1.	函数是否在new中调用(new绑定)?如果是的话this绑定的是新创建的对象。
		var	bar	=	new	foo()
	2.	函数是否通过call、apply(显式绑定)或者硬绑定调用?如果是的话,this绑定的是指定的对象。
		var	bar	=	foo.call(obj2)
	3.	函数是否在某个上下文对象中调用(隐式绑定)?如果是的话,this绑定的是那个上下文对象。
		var	bar	=	obj1.foo()
	4.	如果都不是的话,使用默认绑定。如果在严格模式下,就绑定到undefined,否则绑定到全局对象。
		var	bar	=	foo()
###绑定例外
	在某些场景下this的绑定行为会出乎意料,你认为应当应用其他绑定规则时,实际上应用的可能 是默认绑定规则
	
###柯里化
	只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。(预定义一些参数)
	
	
	
	软绑定
	箭头函数的this不符合我们的this正常的绑定规则
                    
                
                
            
        
浙公网安备 33010602011771号