9

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

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

这些在什么情况下有用,是否有其他脚本语言支持这种代码?

提琴手链接:http: //jsfiddle.net/4t2Bh/

4

1 回答 1

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 ];
}
于 2013-06-07T09:31:15.333 回答