关于函数直接调用

来源:6-4 this 有几种赋值情况

Crispika

2020-06-24

老师,请问直接调用函数this指向window本质上是因为调用window上的方法吗?我的意思是因为global function是往window上添方法,所以window对象的方法被调用,根据对象方法调用this指向调用它的对象这一原则,所以this指向window.

同样很相似的例子:

const a ={
	wait(){
		setTimeout(function(){
			console.log(this) // window
		})
	}
}

this指向window的缘故是不是也是因为setTimeout是window的方法呢?

这么一捋看上去还挺有道理的,但是我不知道实际上原理对不对,请问我可以这样理解吗?

写回答

1回答

双越

2020-06-24

这一点没啥道理可讲的,而且也毫无道理可讲,因为很多人猜测 this 等于 window ,这当初是 js 设计时的一个失误,也难倒了很多 js 初学者。

所以,这里不要想太多,也不要研究它为什么这样设计,记住就好了。

1
1
Crispika
非常感谢!
2020-06-25
共1条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程