js this指针的问题
2020-04-09 本文已影响0人
幽幽_默默
参考:https://juejin.im/post/59748cbb6fb9a06bb21ae36d
当函数独立调用的时候,在严格模式下它的this指向undefined,在非严格模式下,当this指向undefined的时候,自动指向全局对象(浏览器中就是window)
当obj在全局声明的时候,obj内部属性中的this指向全局对象,当obj在一个函数中声明的时候,严格模式下this会指向undefined,非严格模式自动转为指向全局对象。
日常应用最多的还是在函数中用this,上面也说过了this在函数的不同调用方式还有区别,那么函数的调用方式都有四种:
在全局环境或是普通函数中直接调用。
作为对象的方法
使用apply和call
作为构造函数
1.当函数独立调用的时候,在严格模式下它的this指向undefined,在非严格模式下,当this指向undefined的时候,自动指向全局对象(浏览器中就是window)。
2.作为对象的方法。
3.apply和call会改变箭头函数的this的指向,但是箭头函数是父作用域的范围,不会被改变。
刚刚提到了箭头函数是一个不可以用call和apply改变this的典型。
4. 如果函数作为构造函数用,那么其中的this就代表它即将new出来的对象