javascript programing tips

来源:互联网 发布:h5拼图游戏源码 编辑:程序博客网 时间:2024/05/24 04:14

1、函数嵌套

创建一个函数具有以下功能:sum(a)(b) = a +b,并且可以接受任意括号对,如
sum(2)(3) = 5
sum(4)(5)(6) = 15
sum(5)(6)(7)(8)=26
sum(1)(2)(3)(4)(5)(6)=21
.....
function sum(a) {    var sum = a;    function f(b) {        sum += b;        return f;    }    f.toString = function() { return sum; }    return f}

2、[[scope]] for new Function

通常情况下,function的[[scope]]指向当前的LexicalEnvironment,但对于new Function的function例外,其scope指向window
可以看两个例子:
window.a = 1;function getFunc() {  var a = 2;   var func = function() { alert(a) }  return func; }getFunc()() // 2, from LexicalEnvironemnt of getFunc

window.a = 1function getFunc() {  var a = 2   var func = new Function('', 'alert(a)')    return func}getFunc()() // 1, from window
这样就明白了