总结一下this
的指向:
调用方式 | 示例 | 指向 | 解释 | |
---|---|---|---|---|
通过new 调用 |
new Foo() |
新对象 | const foo = new Foo() ,此时this指向foo |
|
直接调用 | foo() |
全局对象 | 取决于运行环境,在浏览器中为window ,在node中为global |
|
通过对象调用 | obj.foo() |
前面的对象 | const obj = { foo: function() {} } 函数foo 的this指向obj |
|
通过call /apply /bind 调用 |
foo.call(ctx) |
第一个参数 | foo.call(ctx) ,此时this指向ctx |
由此可见,this的指向取决于调用方式,而不是函数定义方式。当你定义函数的时候, this
的指向尚未确定。只有调用函数时,this的指向才会确定。
欢迎在评论区留下您的见解~