将函数作为参数发送到 call()

Send function to call() as argument

提问人:Mashael 提问时间:5/8/2023 最后编辑:InSyncMashael 更新时间:5/8/2023 访问量:47

问:

在此示例中

function a() { console.log(this.x); }

var x = 10;
a.x = 20;

a.call(a);

结果是20

为什么会这样?

我知道在调用方法中我们可以发送对象,但这里发送一个函数?我们能做到吗?为什么 A.X 会起作用?

javascript 这个 调用 global-object

评论


答:

2赞 ABR 5/8/2023 #1

call() 方法可用于调用具有特定值的函数,该值可以是对象或任何其他值。this

在此示例中,之所以有效,是因为 JavaScript 中的函数也是对象,并且可以向它们添加属性。因此,向函数添加一个属性。a.xa.xxa