Skip to content


一个JavaScript 1.7的简单实验

刚刚忍不住手痒,下载了一个Firefox 2.0 Beta 1(可能过几天这个链接就换了)。写了一段JS,看来果然在JS1.7当中,Iterator是非常好用的。

代码如下
================================
<html>
<head>
<script language=javascript>
// add function for JavaScript Object
Object.prototype.newfunc = function(){};
function init() {
    var a = [1,2,3,4];
    var it;
    var s;

    // old method in JavaScript 1.5
    s = “”;
    for (it in a) {
        s += it + ” ==> ” + a[it] + “<BR>”;
    }
    document.getElementById(”old_in”).innerHTML = s;

    // new one in JavaScript 1.7
    s = “”;
    try {
        it = Iterator(a, true);
        while (true) {
            var key = it.next();
            s += key + ” ==> ” + a[key] + “<BR>”;
        }
    } catch (err if err == StopIteration) {
        //alert(”End of record.\n”);
    } catch (err) {
        //alert(”Unknown error: ” + err.description + “\n”);
    }
    document.getElementById(”new_in”).innerHTML = s;
}
</script>
</head>
<body onload=”init()”>
<div id=old_in></div>
<hr>

<div id=new_in></div>
<hr>

</body>
</html>
================================

运行结果如下:
0 ==> 1
1 ==> 2
2 ==> 3
3 ==> 4
newfunc ==> function () { }


0 ==> 1
1 ==> 2
2 ==> 3
3 ==> 4


 

可见,使用Iterator是可以避免在for之中错误的使用一些未知的新添加的方法的。     

有一点遗憾的就是,Iterator的结束是很丑陋的,不知道有没有什么好的方法。还需要继续研究。

Posted in javascript.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.