- 普通函数调用:通过函数名()直接调用:this指向全局对象window(注意let定义的变量不是window属性,只有window.xxx定义的才是。即let a =’aaa’; this.a是undefined)
- 构造函数调用:函数作为构造函数,用new关键字调用时:this指向新new出的对象
- 对象函数调用:通过对象.函数名()调用的:this指向这个对象
- 箭头函数调用:箭头函数里面没有 this ,所以永远是上层作用域this(上下文)
- apply和call调用:函数体内 this 的指向的是 call/apply 方法第一个参数,若为空默认是指向全局对象window。
- 函数作为数组的一个元素,通过数组下标调用的:this指向这个数组
- 函数作为window内置函数的回调函数调用:this指向window(如setInterval setTimeout 等)
THE END
暂无评论内容