protype.js 中Enumerable中调用了iterator函数,这个函数在哪定义,有什么作用

litex 2007-02-01 10:25:58
小弟最近在看protype的source,看到了Enumerable部分,其中有部分代码如下:
var Enumerable = {
each: function(iterator) {
var index = 0;
try {
this._each(function(value) {
try {
iterator(value, index++);
} catch (e) {
if (e != _continue) throw e;
}
});
} catch (e) {
if (e != _break) throw e;
}
},

中间调用了一个iterator函数,这个函数在哪定义,有什么作用?
请各位高手指导,谢谢!
...全文
214 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttyp 2007-02-02
  • 打赏
  • 举报
回复
iterator函数是外部指定的,是你自定义的函数

iterator类似于函数指针,就和Array.sort调用一个函数一样
taotaohan 2007-02-02
  • 打赏
  • 举报
回复
这个iterator不是个涵数,实际就是个表示index的一个顺序的参数,给你个例子运行下:
<script src="prototype.js">
</script>
<script>
function demoTimes(){
var n = 10;
n.times(function(index){
alert(index);
</script>
<input type=button value="Test Number.times()" onclick="demoTimes()">
然后你在结合prototype里的源代码
times: function(iterator) {
$R(0, this, true).each(iterator);
return this;
}
你应该就明白了

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧