一: this指向的实例分析?
// 下面的函数中this指向哪里 ?// 实例一:function foo() {console.log(this);}// 1: 作为函数调用foo(); // 指向全局变量: globalThis;// 2: 作为对象的方法调用const bar = { foo: foo };bar.foo(); // 指向调用这个方法的对象: bar// 3: 作为构造方法调用const f1 = new foo(); // 指向foo {}这个实例对象// 实例二:const obj2 = {foo: function() {function bar() {console.log(this)}bar()}}obj2.foo(); // 指向全局变量: globalThis// 实例三:const obj3 = {foo: () => {console.log(this)}}obj3.foo(); // 指向全局变量: globalThis
二: this指向总结
先一句话总结: 看this的最近一个函数(不是箭头函数)是怎么调用的
1: 沿着作用域向上找最近的一个function(不是箭头函数), 看这个function最终是怎么执行的.
2: this的指向取决于所属function的调用方式,而不是定义.
function调用分为以下5种方式:
