gpt4 book ai didi

javascript - 试图理解 underscore.js

转载 作者:行者123 更新时间:2023-11-29 17:24:34 26 4
gpt4 key购买 nike

在浏览 underscore.js 库时,我遇到了

for (var i = 0, l = obj.length; i < l; i++) {
if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
}

// Establish the object that gets returned to break out of a loop iteration.
breaker = {};

为什么在最后使用returni in obj 检查什么?

最佳答案

return 存在函数(具有指定的返回值,如果有的话)。这将在教程中介绍。在循环构造中,它“提前停止”。

prop in obj 是一个表达式,当且仅当 obj(或链式 [[prototype]])具有属性 prop(具有任何值,包括undefined)。在这种情况下,请注意 i 的值在 [0, length) 范围内。此处的结果是“对于数组中的每个已分配 索引”。

iterator 评估为一个函数并通过 call() 调用,因此可以设置上下文(this)。特殊的 breaker 变量计算为特殊的哨兵对象。对于对象,=== 是一个“身份相等”,没有其他新对象将 === 对象分配给 breaker

简而言之:它是 Array.forEach(ECMAScript 第 5 版)或 jQuery.each(实用程序方法)的变体,它迭代 稀疏数组,传递一些额外的参数并允许“提前终止”。

快乐编码。

关于javascript - 试图理解 underscore.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10004310/

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