在java脚本中重写函数

时间:2013-06-06 18:49:53

标签: javascript

刚刚在Javascript中遇到了一个时髦的函数重写概念。

var foo = function () {
    alert("Hello");
    foo = function () {alert("World !");};
};
foo();
foo();

在什么情况下这些有用并且是否有其他支持此类代码的脚本语言?

Fiddler链接:http://jsfiddle.net/4t2Bh/

1 个答案:

答案 0 :(得分:1)

您可以使用此惯用法在第一次调用时初始化LUT,如此

var getBase32Value = function (dummy) {

    var base32Lut = {};
    var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";

    for(var i=0; i<alphabet.length; i+=1) {
        base32Lut[ alphabet[i] ] = i;
    }

    getBase32Value = function (v) {
        return base32Lut[ v ];
    }
    return base32Lut[ dummy ];
}