本帖最后由 hetengfei_ 于 2011-12-12 23:45:06 编辑

解决方案 »

  1.   

    如果最后一步跳得快了,请看下面:
    //------------------下面我解释:疑点1 ------------------------
     var Hello = function(Name){
    alert("Hello:"+Name);
     };
     Hello("Jim");
     //以上是函数 的调用,
     //如果Hello函数只调用一次, 可以缩写成如下:
      //(上下等价)
     var Hello;
     (
    Hello = function(Name){
    alert("Hello:"+Name);
     }
     )("Jim");
     //进一步缩写; 把变量去了。  (上下等价)
     (
    function(Name){
    alert("Hello:"+Name);
     }
     )("Jim");//------------------下面我进一步解释,疑点2------------------------
    var a = "Hello";
    //可以写缩成如下: (上下等价)
    var getHello=function (p){
    return p;
    };
    var a = getHello("Hello");
    //进一步缩写   (上下等价)
    var a = (function (p){
    return p;
    })("Hello");//----------------如果把上例的字符串"hello"  换成( 函数)-------------
    var flag=false;
    //声明函数a
    function a(pa){
    if(pa)
    {
    return true;
    }
    else
    {
    return false;
    }
    };
    var outp=a(flag);
    alert(outp);
    //缩写 如下:  (上下等价)
    var flag=false;
    //声明函数a
    var a = (function(){
    return
    (function (pa){
    if(pa)
    {
    return true;
    }
    else
    {
    return false;
    }
    });
    })();
    var outp=a(flag);
    alert(outp);
    // 进一步缩写 如下:(上下等价)
    var flag=false;
    //声明函数a后马上使用。 
    //可以不写 函数a ,直接写 匿名函数,在此我还是写上  函数a 吧,大家好认
    var outp=
    (function(flagIn){
    var a =function (pa){
    if(pa)
    {
    return true;
    }
    else
    {
    return false;
    }
    };
    return  a(flagIn);
    })(flag);
    alert(outp);
    ///进 一步简化就是 原型了。(上下等价)
     var outp=
    (function(flagIn){
    return function(){
    if(flagIn)
    {
    return true;
    }
    else
    {
    return false;
    }
    };
    })(flag);
    alert(outp);
    //END
      

  2.   

    问我 js闭包是什么?
     我说: 
      js 闭包 是 比较懂 js 语法的家伙 再玩弄  js 语法 来现实传参。即是玩弄,就是要让人觉得高深, 
    所以取名“js闭包”
    让人搞不透!
      

  3.   

    function DOG() {
        this.Name = "Jim"; //要传的传数

        this.ShowName = function() {
    var _this = this
            setInterval(function(){
    alert(_this.Name)
            },1000)
        }
    }
    var obj = new DOG()
    obj.ShowName()
    这样也可以的