呃JS接触不是太多,以下是看到代码的一些疑问,望解答。·-·~var Application=function(a){a=a||{};
if(!(a.id&&a.width&&a.height)){return}--> 1.a=a||{};是什么意思。。?
--> 2.参数a是页面的一个要素,a.id&&a.width&&a.height 并且符号在这里代表什么?难道是判断它们不为空么,这有什么好并且的~。?var _specificMenu=[]; --定义
var a=_specificMenu[name1]; --调用
specificMenu.name1=[...] --添加数据-->1.JS里面添加数据不需要放前面是吗?可以调用在前,实际添加在后?
-->2.JS里面的[]相当于Hastable是吗?比如说,我用
for(c in specificMenu)
{
//这个时候要用specificMenu[c],这才是值,是吗?
}

解决方案 »

  1.   

    a=a||{};  --如果参数a为空或未定义,那么给a赋值一个空的对象  {},a.id&&a.width&&a.height   a表示一个对象   id  width等是a的属性  这句话是判断a对象的属性是否存在[]  数组的简写  表示一个空数组如果未赋值  调用时返回一个空值
      

  2.   

    辛苦啦,辛苦啦!谢谢!~
    那么,可以再追问俩个么~
    如果未赋值 调用时返回一个空值
    -->1.因为看到有的方法的定义及数组数据的添加都放在最后面,但在前面就开始调用了,这样算什么?不要紧么?2.   function addMenu(参数1,参数2,参数3,参数4) //定义了4个参数
         {...}
    看到有的方法定义了4个参数,但是在有时调用的时候他却只给3个参数,可以这样的吖?3.new Element({a:b,b:a,y:g})
    -->有看到这样的代码,在这里 冒号(:)代表什么意思?(Element是自定义的要素,不用管·)PS:我是在线等的哦~~~,我会马上结贴的。。回答我吧!~·-·.
      

  3.   


    var Application=function(a){
       a=a||{};  //"||"是或逻辑,其意思是当左边的为false时(“||”会自动转为boolean判断),用右边的表达式
       /* 相当于
       if(a){
          a={};
       }else{
           a=a;
       }*/
       if(!(a.id&&a.width&&a.height)){return}//判断DOM对象是否存在,如果不存在就直接返回
     
       var _specificMenu=[];//声明一个数组
       var a=_specificMenu[name1]; //将对应name1的值赋给a对象,因为数组中并没有name1的值,所以返回空
       _specificMenu.name1=[...] ;//为name1进行数组嵌套赋值}
      

  4.   

    说实话,就这一段解释而言,还是2楼解释的好一点,你的我看了半天,好难理解诶--
    new Element({a:b,b:a,y:g})
    -->冒号我知道是什么意思了,比如 var o={a:b,b:a,y:g},表示建立一个具有a,b,y,三个属性的对象,访问使用o.a或者o["a"]---
    o.a或o[ "a "]即可
      

  5.   

    对于函数的参数  可以通过内置方法获取参数个数 arguments.length;  arguments[0]第一个参数值
    函数可以定义多个参数,调用的时候可以只写一部分  按照顺序匹配  为定义的则为空new Element({a:b,b:a,y:g})  实例化一个对象  
    {a:b,b:a,y:g}  是这个构造函数的参数   {……}定义一个对象
    a:b  a表示属性名  b表示属性对应的值
    比如var o = {a:b,b:a,y:g} ;   那么o.a就等于b
      

  6.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <title> New Document </title>
      <meta name="Generator" content="EditPlus">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
     </head>
    <script type="text/javascript">
    //1.因为看到有的方法的定义及数组数据的添加都放在最后面,但在前面就开始调用了,这样算什么?不要紧么?
    /*
    在回答这个问题前,LZ应该知道JS中的“词法作用域”的问题。
    如果不知道,我简单的讲解一下,不过深的研究还是要自己的去搜索。
    司法作用域, 在函数被执行前,JS内核已经用一个链表确定了这个函数的执行过程中被声明的变量,函数等,并且所有变量都未被初始化。
    展示一下链表内容,在fn中有arr数组,及一个函数对象say。*/
    function fn(){
       say();  //hello world  因为say在执行已经被知道,所以可以执行,.
       document.write(arr[0]);  //空指针异常, arr在执行已经被知道,但是没有被初始化,arr[0]指向一个null会被报错
       var arr=[1,2,3,4];
       function say(){
          document.write("helloworld");
       }}
    //fn();  
    /*2.function addMenu(参数1,参数2,参数3,参数4) //定义了4个参数
      {...}
    看到有的方法定义了4个参数,但是在有时调用的时候他却只给3个参数,可以这样的吖
    *//*
    这个问题要的核心在于arguments这个类数组,让我们来看看function addMenu(参数1,参数2,参数3,参数4) JS怎么样解释 arguments=[参数1,参数2,参数3,参数4];
    如果其中一些没有被传入,那么也就是这样arguemnts=[参数1,参数2];
    看看下面一个例子,希望你能懂。*/ function fn2(arg1,arg2,arg3,arg4){
    document.write("-------this is fn2 method!!-----<br/>");
    document.write("arg1:"+arguments[0]+"<br/>");
    document.write("arg2:"+arguments[1]+"<br/>");
    document.write("arg3:"+arguments[2]+"<br/>");
    document.write("arg4:"+arguments[3]+"<br/>");}
     fn2(1,2,3,4);
     fn2(1,2);
    function fn3(){
    document.write("-------this is fn3 method!!-----<br/>");
    document.write("arg1:"+arguments[0]+"<br/>");
    document.write("arg2:"+arguments[1]+"<br/>");
    document.write("arg3:"+arguments[2]+"<br/>");
    document.write("arg4:"+arguments[3]+"<br/>");
    }
    fn3(1,2,3,4);
    fn3(1,2); //3.new Element({a:b,b:a,y:g})-->有看到这样的代码,在这里 冒号(:)代表什么意思?(Element是自定义的要素,不用管·)
    /*
    这种属于Json格式,“:”表达的其实就是hashtable里的键值对,也就是说
    var a=b;
    var b=a;
    var y=g;
    看下面的例子 */
    //建立一个People对象
    var People={
    name:"hello",
    sex:"gril"
    }var p=People;//实例People对象document.write(p.name+" is a "+p.sex);
     </script>
     <body>
      
     </body>
    </html>
      

  7.   

    。~ 
    感谢JJo,感谢静缘,感谢感谢感谢~JJO,好专业,对一个菜鸟如此细心,静缘好贴切,一说就懂,--·~还想八卦下,怎么联系,怎么联系吖!下次想问你俩问题了怎么办~求教,求指导,求私信~
      

  8.   

    我也是一个菜鸟,只不过是喜欢JS而已,最近在研究,如果想学深一点,大家可以看看《javascipt 权威指南》
      

  9.   

    JJO,还是求联系~求私信,求人肉·-行了,结贴了~感谢二位~就不废话了~
      

  10.   

    var People={
        name:"hello",
        sex:"gril"
        }这是一个Json数据格式的对象, 键(key)是"Name“ ,其对应的值(value)是 hello,你也可以把他看做People对象的属性是name,属性值是hello,写法可以是People.name 或 People[neme]