gpt4 book ai didi

javascript - 显式数组属性与 JavaScript 中的变量

转载 作者:数据小太阳 更新时间:2023-10-29 04:20:03 24 4
gpt4 key购买 nike

尝试重构一个简单的函数:

// arr - array of objects with functions
function eventNotify(arr, event) {
for (var i = 0; i < arr.length; i++) {
var a = arr[i];
if (typeof a[event] === 'function') {
a[event]();
}
}
}

进入这个:

function eventNotify(arr, event) {
for (var i = 0; i < arr.length; i++) {
var a = arr[i][event];
if (typeof a === 'function') {
a();
}
}
}

我一直在努力理解这种变化是如何破坏我的所有测试的。

第二个实现在功能上与第一个不同怎么可能?

我什至尝试过拆分索引的使用,想着也许把它当作一个3D数组来处理吧:

var a = arr[i];
a = a[event];

但是不,这没有区别。

请有人指出我到底在改变那里的算法逻辑!我现在正在为这个问题绞尽脑汁。


我正在 Node.js 10.9 下测试它

最佳答案

谢谢 @Pointy

我的错误是无法看到语法 a[event]() 掩盖了它在 this 上下文中传递给对象 a 的事实,而简单的 a() 没有,因此结果不一致。

关于javascript - 显式数组属性与 JavaScript 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52026381/

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