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 williterator.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;