Javascript Underline.js中breaker的重要性是什么?

Javascript Underline.js中breaker的重要性是什么?,javascript,underscore.js,Javascript,Underscore.js,在中,有如下代码: if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; 例如,在“每个”函数中 var each=\ each=\ forEach=函数(obj、迭代器、上下文){ if(obj==null)返回; if(nativeForEach&&obj.forEach===nativeForEach){ forEach(迭代器,上下文); }否则如果(对象长度===+对象长度){ 对于(变

在中,有如下代码:

if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return;
例如,在“每个”函数中

var each=\ each=\ forEach=函数(obj、迭代器、上下文){
if(obj==null)返回;
if(nativeForEach&&obj.forEach===nativeForEach){
forEach(迭代器,上下文);
}否则如果(对象长度===+对象长度){
对于(变量i=0,长度=obj.length;i

我不明白,如果(xxx==断路器)返回,为什么要添加这个
?When will
iterator.call(上下文,obj[keys[i]],keys[i],obj)==breaker

如果在代码中向上滚动,您将看到以下代码:

var breaker = {};

因此,它正在检查所调用的函数(迭代器
是否返回空对象。如果是,则每个“循环”都被中断,函数结束。

它用于其他
\u下划线
帮助程序,如
.all()
.each()
.any()
,它们使用
.each()
函数在集合中循环,但在想要停止每个循环时返回
断路器(即,他们找到了他们正在寻找的元素等)

它只是一个前哨值,如果迭代器函数返回
breaker
。每个
都将立即返回。由于
breaker
未分配给任何其他对象,因此任何其他对象都不能等于
breaker
(它与
=
匹配)。它在内部由和使用

\每个

if (!(result = result && iterator.call(context, value, index, list))) return breaker;
\任何

if (result || (result = iterator.call(context, value, index, list))) return breaker;

这两个函数返回
breaker
,因此

@lucuma,似乎是这样,感谢您的链接:)@lucuma,再次感谢,从您提供的链接中,我找到了我想要的答案:)
if (result || (result = iterator.call(context, value, index, list))) return breaker;