刚刚在Javascript中遇到了一个时髦的函数重写概念。
var foo = function () {
alert("Hello");
foo = function () {alert("World !");};
};
foo();
foo();
在什么情况下这些有用并且是否有其他支持此类代码的脚本语言?
Fiddler链接:http://jsfiddle.net/4t2Bh/
答案 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 ];
}