JS的语法咋这么奇怪呢?
那个对象方法什么的,太不习惯了。
请教下下面的这段语法啥意思啊?问了谷老大,也没什么头绪。var a = {
b: function(){
return function(){
            ...
                } 
}
}这个是说b是a的一个属性(方法)吗?该怎么调用呢?能给个简单的解释下这种语法吗?

解决方案 »

  1.   

    var a = {
        b: function(){
            return function(){
                    ...
                    } 
        }
    }//创建一个类a(后面的是类a的体),类a中有个方法b,b的方法体就是后面跟者的{}里面的东西
      

  2.   


    var a={//将a初始化为一个对象(该定义为JSON的定义方法,你可以去查找JSON的相关资料)
       b:function(){//为对象a的一个方法,可通过a.b()调用
           return function(){//声明a.b()方法返回一个方法,可通过a.b()();运行该方法.(这里应用到的是闭包的技术,你可以去查找关于JS闭包的相关资料)
                 ...
           }
       }
    }
      

  3.   

    正确,ie ff 测试通过-,-
    学到了
      

  4.   

    json知道吧,这个就是一个普通的json对象,
    a = {
     key:value,
     key1:value
    }
    这不过这个value是一个function
    针对lz说的这个例子,当调用这个function的时候即(a.b()),实际返回的又是一个function如果想执行返回的这个function,还要调用一次(),即a.b()()
      

  5.   


    var a = { //创立了a对象 ##A
        b: function(){ //a对象的b属性是一个方法 ##B
            return function(){ //这个方法返回一个函数实体的指针 ##C
                    ...
                    } 
        }
    }a.b 是一个函数指针, 要调用就要a.b()
    a.b()时实际上得到了一个函数实体的指针, 要调用C的功能必须 (a.b())() 
    由运算符ltr执行顺序 (a.b())() 等同于 a.b()()