一、箭头函数中
(1)箭头函数的this永远指向它父级对象的this。
(2)箭头函数this的指向不会发生改变。
二、被直接调用
(1)全局作用域:this永远指向window
(2)函数作用域
1、如果函数直接被调用 this指向window 函数名()
2、被对象的对象.属性()调用 函数中的this指向这个对象
三、使用new关键字调用函数时
(1) 当使用 new 关键字调用函数时,函数中的 this 一定是 JS 创建的新对象。
(2)new的优先级高于bind
四、使用bind函数时
(1)多次 bind 时只认第一次 bind 的值
(2)bind函数中的this不会被修改
注:将参数一一进行传递,在被函数调用时不会立马执行函数,而是返回一个新函数,新函数中的this指向改变,不影响原来的函数的this指向
五、不在函数里
(1)在 <script />
标签里,this 指向 Window。
(2)在 Node.js 的模块文件里,this 指向 Module 的默认导出对象,也就是 module.exports
六、总结
谁调用this就指向谁!