1、是
2、如果循环(for)或者判断(if)的子语句只有一句,则可省略{}
3、可以使用function xxx(){function bbb(){}}
4、参见http://harrison2010.javaeye.com/blog/173446

解决方案 »

  1.   

    This.length=Size; 不支持此项操作,JS中用{},这段脚本有很多问题啊,能运行了吗?
      

  2.   


    1.首先楼主的代码有个个地方有问题,改成下面的.function arrayName(size){   
    this.length=size;  
    for(var X=0; X <=size;X++)  
    this[X]=0;  
    return  this;  
    } 2.第一个问题,这个实例可以算是一个数组,但不具备数组的一些属性和方法,不是真正意义上的数组.
      在用这个函数时, 可以这样写 var array_a= new arrayName(2); 这样就创建了一个新的对象,可以用array_a[0] 来取到数据,都为0,实际上 这个对象有3个元素.而不是2个.  我不赞成 1楼 的第一个问题,因为this 根本就不是arrayName. 对this 的理解要记住的一句很重要的话就是
    this指向的是调用该方法的对象.
    我认为this 指向的是你 new arrayName(2) 创建的这个临时对象,可以理解成  array_a 
      

  3.   

    那this该如何理解呢
    this指向的是调用该方法的对象. 
    不可以理解成代表这个对象吗
      

  4.   


    <script>
    function arrayName(size){
    /********************************************************
    1、this:arr;
    2、for()的{}:如果眼力/记忆力强可省略:)
    3、内部函数:可以创建;
    4、JS里都可以看作对象,用不着可以区分函数还是对象;看看《Javascript高级程序设计》,对你会有帮助的
    *********************************************************/
      this.length=size;
      this.uu='呵呵';//添加对象新属性
      for(var X=0; X<=size;X++){  this[X]=0;  }
      return this;
    }  var arr=[];
    arr=arrayName(5);//调用
    for(var i=0; i <=arr.length;i++){//输出数组看看结果。注意length
      document.write(arr[i]+'<br>')
    }
    alert(arr.uu)//测试添加对象新属性
    </script>
      

  5.   

    告诉你吧,这要用JavaScript OOP的思想来理解:
    当你这样写:var foo = function(){...}的时候,实际上是声明了一个foo类型的构造器。它具有:foo.prototype = {}; 这个是他的原形当你把函数运行的时候,比如这样调用: foo(),那么相当于运行这个构造方法,只不过它不会在内存中产生新的实例,在这种情况下,函数中的this引用是没有意义的。当你 new foo() 的时候,实际上是复制了他的 foo.prototype,同时在这个对象内部运行它的构造方法foo.在这种时候,this指向对象自身。换句话说一个对象是一个Object,而一个Function只是作为一个对象的构造方法而存在的,在fucntion中的this永远指向函数的作用域对象。
      

  6.   

    这个代码是无法单独运行的。
    只有做Array的原型使用的时候才有意义。
    因此这里的this其实不是给自己用的。
    是指的Array的对象。
    用Array来理解的话就很简单了。
    其实的也就不用说了。
      

  7.   

    问题 
    1,这里的this 是不是可以理解成 当前对象,即arrayName 
    答:创建对象实例时可以这样理解。2,this[X]=0;应该是随for进行循环的,怎么没见到 "{}",是不是JS中不用{} 
    答:for循环默认情况下执行到第一个分号,对这句来说可有可无,两句以上则需要{},强烈建议加上{},C/C++/Java均有这个特点。
    3,这事一个创建数组的例子,我想问一下,JS的对象和其他语言的类相似,但是是用function定义的,那么在这种function内,是不是就不能出现自定义函数了,即funciton xxx(){ function bbb(){}  }? 
    答:可以出现内联自定义函数,这一点与C/C++不同,C/C++不允许有内联自定义函数
    4,怎样区别JS中的函数和定义的对象,是不是看有没有对自身属性和方法的定义(例如:this.)? 
    答:JS中的对象是由函数生成的,JS中的函数起了两方面的作用。既作为函数来使用,又起到了其它语言中类的作用。
    JS是弱类型语言,不要太刻意区别JS中的函数和对象。
      

  8.   

    但JS中的定义一些操作的函数就是普通的函数,而对象应该说是特别的函数,可以这样理解吗还有因为刚学习JS基础,希望大家给推荐一本由浅入深的好书,谢谢了