SOURCE

let b = [1,2,3,4];
let a = b.map(function(a) {
    return !(a>1) ? 1 : arguments.callee(a-1) * a;
})
console.log(a);
console.log(b);

var global = this;
var sillFunction = function(re) {
    if(!re) {return arguments.callee(true)}
    if(this !== re) {
        alert("this is" + this);
    }else {
        alert("This is global");
    }
}
sillFunction();

function createPerson (sIdentity) {
    // Function构造函数Function 中的参数全部是字符串
    // 该构造函数的作用是将 参数链接起来组成函数
    // 如果参数只有一个, 那么表示函数体
    // 如果参数有多个, 那么最后一个参数表示新函数体, 前面的所有参数表示新函数的参数
    // 如果没有参数, 表示创建一个空函数
    var oPerson = new Function("alert(arguments.callee.identity);");
    oPerson.identity = sIdentity;
    return oPerson;
}

var john = createPerson("John Smith");

john();

"use strict"
console.log(a1)
var a1 = 5;
console 命令行工具 X clear

                    
>
console