扫码关注官方订阅号
直接上代码
函数没有明确返回值的情况下,都是返回undefined的
因为你声明了严格模式 'use strict'; 严格模式下,禁止this关键字指向全局对象
看语言精粹里说一般函数this的设定是语言设计上的一个错误,如果设计正确,那么内部函数被调用时this应该指向外部函数的this变量。所以,我之前也觉得一般的函数这个this有点蛋疼的,无法理解。
我了个去,小俞的正确答案居然被忽略了,还写了个:答非所问。 我也是醉了。 如果没有"use strict" foo中的this就是window 你用了"use strict", foo中的this指向window是被禁止的,但是除了window之外,foo中又没有其他作用域链了,所以this就是undefined。 所以:
this === window // false this === undefined // true
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
函数没有明确返回值的情况下,都是返回undefined的
因为你声明了严格模式
'use strict';
严格模式下,禁止this关键字指向全局对象
看语言精粹里说一般函数this的设定是语言设计上的一个错误,如果设计正确,那么内部函数被调用时this应该指向外部函数的this变量。所以,我之前也觉得一般的函数这个this有点蛋疼的,无法理解。
我了个去,小俞的正确答案居然被忽略了,还写了个:答非所问。
我也是醉了。
如果没有"use strict"
foo中的this就是window
你用了"use strict", foo中的this指向window是被禁止的,但是除了window之外,foo中又没有其他作用域链了,所以this就是undefined。
所以: