samtiger


QQ:418148757
Name:yangchuan
数据加载中……
关于javascript对类的一些理解

1:在javascript中,函数也是一种对象,所以他也可以有属性和方法。
2:定义一个类,实际上是定义一个构造函数。通常遵循的规范是函数名大写,
但这个只是大家的一中习惯性的编程规范,不是必须的。当然你也可以小
写。
3:对象的属性有以下几种写法:
  a:直接在对象上添加,格式: xxobject.xxprop = 属性值
   xxobject表示某一个对象,xxprop表示要添加的新属性。
 例: var person = new Object();
            person.name="sam";
            alert(person.name); //值为sam;
  上面的例子表示给person对象添加一个新的属性name并辅值为sam.
  b: 通过构造函数定义类属性.格式:
   function classname(){
      this.xxprop1 = xxvalue1;
      this.xxprop2 = xxvalue2;
    }
  xxprop1 属性1;
 例:
    function Person(){
      this.name = 'sam';
      this.sex = '男';
  }
  
   var person = new Person();
   alert(person.name) //值为sam;
   c: 通过构造函数的prototype对象添加属性 ,格式:Class.prototype.xxprop= value;
    Class表示某构造函数,prototype是构造函数对应的prototype对象.每一个构造函数
都有一个名位prototype的对象.

  例:
    function Person(){ };
  Person.prototype.name = 'sam';
    Person.prototype.sex = "男";
    var person = new Person();
    alert(person.name) //值为sam;

  注意:用构造函数体内定义的属性(如b: this.xxprop1=xxvalue1;) 与在函数的prototype
对象里添加属性的方式有什么区别?
    主要区别在于:构造函数体内定义的属性每次new一个新的对象时,都会在内存中创建这些属性
的副本,而prototype里添加的属性则不会,它们在内存中始终只有一份.不会因为对象的创建,
存在对分属性的内存空间.但是他们的访问方式都是一样的,都是通过对象名点属性名的方式
(person.name).
   d: 通过对象直接量的方式添加对象属性.格式: var objectName={xxprop1:xxvalue,
     xxprop2:xxvalue2};
   我们知道javascript创建一个对象,有三种方式:
    第一种:通过Object函数创建.如:var person = new Object();
    然后通过上面a的方式加入属性值如: person.name = 'sam';
        第二种: 通过定义构造函数来创建.如上b方式.如: person = new Person();
        第三种方式:通过对象直接量创建. 比如:
    var person = {name:'sam',sex:'man',age:18};
    即:大括号内写入 属性 冒号 值 ,即可.
   
     

posted on 2008-04-01 21:15 sam.chuan.yang 阅读(296) 评论(2)  编辑  收藏 所属分类: javascript 笔记

评论

# re: 关于javascript对类的一些理解 2008-05-28 17:36 懒人

前两种好像比较常用
  回复  更多评论    

# re: 关于javascript对类的一些理解[未登录] 2012-04-01 11:01 SPARK

第三种即匿名对象。实际上,相当多的语言都有匿名对象。

  回复  更多评论    

只有注册用户登录后才能发表评论。


网站导航: