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

JavaScript对象数组属性中函数的this指向及类型判定问题

问题解答

1. this的值是什么?

执行myObject.methodArray[0]()时,this指向的是myObject.methodArray这个数组对象,也就是你看到控制台打印出的数组。

原因是JavaScript中this的绑定规则看的是函数调用时的上下文:当通过obj.prop()形式调用函数时,this会绑定到.(或索引访问[])前面的那个对象。这里的调用链可以拆解为:先获取myObject.methodArray得到数组,再调用该数组索引0对应的函数,所以函数调用时的所属对象是这个数组,而非外层的myObject,因此this绑定到数组。

2. methodArray[0]属于普通函数还是方法?

methodArray[0]本身是一个普通函数,只是调用它的方式让它临时作为数组methodArray的“方法”执行。

它本质是独立的函数,只是被存储在数组的索引0位置。如果把它提取出来直接调用:

const func = myObject.methodArray[0];
func();

此时this会绑定到浏览器的全局对象window,这才是普通函数直接调用的典型表现。而原代码中通过数组访问并调用的方式,只是让它的执行上下文变成了数组,并非它本身是方法类型。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:35:06