You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询JS中this关键字理解规则的正确性与完整性

关于JavaScript中this关键字规则的修正与补充

你的总结方向没问题,但存在细节错误和遗漏,我帮你修正并补充完整:

  1. 针对function关键字定义的函数:

    • 非严格模式下,this通常指向调用对象——可以是浏览器的window/Node.js的global全局对象、类的实例、new关键字创建的新对象,或是DOM事件触发时的目标元素;如果没有明确调用对象(比如直接裸调用函数),this会默认指向全局对象。
    • 严格模式下,裸调用函数时this会是undefined;另外通过call()/apply()/bind()显式绑定的话,this会指向你指定的对象,哪怕是null或undefined。
  2. 针对箭头函数:

    • 箭头函数没有自身的this,它的this是词法继承自定义时所在的外层作用域的this,也就是你所说的“直接闭合作用域”的this,但要注意,这个外层作用域必须是拥有自身this的环境(比如普通函数、类、全局作用域),如果外层也是箭头函数,会继续向上追溯。
    • 补充:箭头函数不能用new关键字调用,也无法通过call()/apply()/bind()改变它的this指向。
  3. 关于严格模式的错误纠正:

    • 你搞反了规则:非严格模式下,无调用对象的函数this指向全局对象;严格模式下,这种场景的this才是undefined。

内容的提问来源于stack exchange,提问作者kbl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:05:54