gpt4 book ai didi

JavaScript:意外的类型结果

转载 作者:数据小太阳 更新时间:2023-10-29 05:13:02 27 4
gpt4 key购买 nike

我有一个数组迭代器函数:

function applyCall(arr, fn) {
fn.call(arr[0], 0, arr[0]);
}

和一些代码

var arr1 = ['blah'];
applyCall(arr1, function (i, val) {
alert(typeof this); // object WHY??
alert(typeof val); // string
alert(typeof(this === val)) // alerts false, expecting true
});

为什么 typeof this 在内联函数 object 而不是 string 中?

jsfiddle here

最佳答案

当在 JavaScript 中调用方法时,它会在内部将 this 设置为调用对象:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply

...and primitive values will be boxed.

通过“装箱”,它们的意思是原语被包裹在一个对象中。请注意,这仅适用于 apply/call 的第一个参数。其他参数成为未“装箱”的函数参数。

关于JavaScript:意外的类型结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14971996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com