JavaScript DHTML/Mochkit/forEach
forEach handles array-like iterables
<source lang="html4strict">
<html>
<head>
<script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Base.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Iter.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/DOM.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Style.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Logging.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Iter.js"></script>
</head> <body>
<script type="text/javascript"> var rval = []; var o = [0, 1, 2, 3]; o.next = range(2).next; forEach(o, rval.push, rval); alert( rval.length ); </script>
</body> </html>
</source>
forEach works bound
<source lang="html4strict">
<html>
<head>
<script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Base.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Iter.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/DOM.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Style.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Logging.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Iter.js"></script>
</head> <body>
<script type="text/javascript"> var rval = []; forEach(range(2), rval.push, rval); alert( compare(rval, [0, 1])); </script>
</body> </html>
</source>
forEach works unbound
<source lang="html4strict">
<html>
<head>
<script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Base.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Iter.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/DOM.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Style.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Logging.js"></script> <script type="text/javascript" src="MochiKit-1.4.2/lib/MochiKit/Iter.js"></script>
</head> <body>
<script type="text/javascript"> var rval = []; function foo(o) { rval.push(o); } forEach(range(2), foo); alert( compare(rval, [0, 1, 0, 1])); </script>
</body> </html>
</source>