一般来说谁调用上下文都指向谁,具体有以下几种情况:
1、函数用圆括号调用,函数的上下文是window
注意:所有的全局变量都是window的属性,而函数里边定义的变量谁的属性也不是。
2、函数作为对象的方法,对象打点调用,此事函数的上下文就是这个对象
3、函数是事件处理函数、函数的上下文就是触发事件的对象
规律4、被定时器调用、函数上下文指向window
规律5、数组中存放的函数、被索引调用,this就是这个数组
//5由于this指向函数
arr[0]() 此时这个函数是从数组中枚举出来然后加上圆括号执行的,所以中中调用者可以认为是这个数组
--------------------------------------------------------------------------------------------------------------------------------------
小题目:
1、
2、
类数组对象 arguments被索引调用 原因他有顺序且没有数组的一些方法
函数的length
argument.callee 在函数内部得到函数自身
argument.callee.length==函数的长度 函数的长度是形参长度
argument.length 实参个数
这两个相等都是3