1、(function(){alert('1');})()
 麻烦解释下上面那个语法是什么意思?函数没有名字的而且在第一个括号内。感觉像是两个函数。实际上函数里的ALERT会直接执行。
 另外这种写法有其特有的目的吗?2、“:”的用法
 什么时候“:”会等于赋值?“:”除了 EXP?V1:V2外还有其他用法么?

解决方案 »

  1.   


    //()执行方法
    var t=function(){alert('fuck');}();
    (function(){alert('1');})()  //个人理解匿名方法
    //对象t
    var t={
      s:1,
      show:function(){alert('lets fuck!');}
    }
    var tt=new t(); //创建实例
    alert(tt.s); //属性s
    tt.show(); //方法小弟是菜鸟 说错了 欢迎高手指点  在这里献丑了
      

  2.   


    var t={
      s:1,
      show:function(){alert('lets fuck!');}
    }
    alert(t.s); //属性s
    t.show(); //方法
    上面 笔误了
      

  3.   

    (
    function(){alert('1');}
     )() 
    表示页面加载就运行
    相当于 document.onReady=function(){alert('1');
    juqery里是
    $(document).ready(
    function(){alert('1');}
    )
    ext里是
    Ext.onReady(
    function(){alert('1');}
    )
    :除了在if 判断的时候用,也在赋值的时候用,针对json数据,json是比xml更清量级的数据传输
      

  4.   

    (function(){alert('1');})() 
    这句可以直接执行的啊  直接输出1吧
      

  5.   

    1, 声明一个匿名函数,并执行它.
    多半是为了让实行的代码闭包.2. 等同于 if(EXP){ x = V1; } else { x = V2; }
    ":"和赋值没有关系.
    什么时候他也不会等于赋值的.
    想不出来还有什么其它的用法.
      

  6.   

    function(){alert('1');} 创建一个Function类型实例,表达式返回函数本身的引用,等价于(function(){alert('1');})(function(){alert('1');})() 将这个Function以不带参数方式运行。你问到:什么时候是赋值应该是碰到这样的情况吧:var testObj = {
      a:1,
      b:2,
      c:3
    }
    这是JavaScript的对象格式。在JavaScript中,除了使用构造方法+原型的方式创建对象,也可以直接写一个对象。就是用JSON。这样的写法,就可以这么访问:testObj.a,testObj.b,testObj.c 。Json本身和数据传输没有什么关系,他就是JavaScript本身的对象与语法规则而已,只不过由于其描述简单,而且可以被JavaScript动态解析,所以才被用于数据传输。
      

  7.   

    1、综合5,7,8楼的说法再校验了一下:
    8楼说的比较详细,但是“function(){alert('1');} 创建一个Function类型实例,表达式返回函数本身的引用,等价于(function(){alert('1');})”似乎不是等价的。如果将包住这对象的()去掉后。后面的()就运行不了了。
    但是后面的()的确是实现了不带参数运行这动作。如果这个匿名函数带参数的话,后面的()也是可以传送参数的。
    所以总的来说,7楼的说法比较准确,而且回答了另一个问题。

    声明一个匿名函数,并执行它. 
    多半是为了让实行的代码闭包. 

    不过如果综合一下8楼的会更加好:
    function(){alert('1');} 创建一个Function类型实例,
    表达式(function(){alert('1');})返回匿名函数本身的引用,
    并在后续的()中以不带参数的方式运行。
    2、7楼的朋友没看清楚我的问题。“?:”的方式基本上所有编程的人都熟知的。
    我的问题是除了这种应用外,“:”还会作为运算符或赋值符存在吗?
    而这种用法的确是属于JSON。
    详细大家可以参考这里:
    http://www.json.org/json-zh.html好了。谢谢大家,按大家的回答给分吧。1楼解释的不够。而且用语不大礼貌。就不给了。
      

  8.   

    JSON里的:是赋值,也算是定义吧,Javascript的语法。
    能用到:运算符的地方,貌似就只有JSON里,另外
    ?:运算符里面:也是个角色,这个应该大家都熟呵,不多说了。