2014年4月

js中的valueOf和toString方法小测试

故事的起因源于群中有人提的一个问题: a(1)=1; a(1)(2)=3; a(1)(2)(3)=6; 还原出函数a 好吧,我刚看到这个题目的时候,第一反应就是递归的闭包,然后就写了下面这一版: var a = function(num){ this.sum = this.sum || 0; if(num){ this.sum += num; return a; } var result = this.sum; delete this.sum; return result; } 但是这样的执行是这样的: a(1)();    // 1 a(1)(2)(); // 3 和题目要求的不一样,而且还有sum没有及时重置,所以,这个办法不行 然后想了一会儿没想出好办法,就去求助原公司大牛。果然大牛就是不一样,给出了下面这个解决方案 function a(x){ var list = []; list.push(x); var...