在JavaScript中创建对象以及prototype的总结

基础知识
1. 严格上讲,在JS中只有对象没有class
2. 对象可以有独有的属性和方法。即对象的属性和方法是类的超集。
3. ECMAScript可以识别两种类型的对象。
一种叫做Native Object,属于语言范畴;
一种叫做Host Object,由运行环境提供例如document对象,Dom Node等。
Native Object是一种松散的结构,可以动态的增加、删除、修改对象的属性(property)和方法(function)。属性有一个名字和一个值,属性值可以是另一个对象的引用
或者是内建的数据类型(String, Number, Boolean, Null 或者 Undefined) 。方法有方法和方法体。
可以直接给属性(方法)指定属性值(方法体),当对象中不存在此属性(方法)时,就创建此属性(方法)。
可以调用delete obj.a删除属性或者方法。

一,关于prototype
      1. prototype属性对应一个对象,他是类级别的。通过ClassName.prototype进行访问。
      2. 当创建一个类的对象时,这些对象共享类的prototype属性。
      3. prototype属性指向一个对象,此对象的对应类可能也有prototype属性。所以可能形成prototype链。
      4. 当定义一个类时,他的prototype存在默认值。
       5. 读操作会读取在对象自己和prototype 链上发现的第一个同名属性值
          写操作会为对象本身创建一个同名属性(如果这个属性名不存在)。
      6. ClassA.prototype=A; ClassA.prototype=B;
          那么B将取代A成为ClassA的prototype。
      7. prototype属性指向的对象,可以包含属性和方法。prototype属性赋值的方法有
            ClassA.prototype = objA; //直接指定对象
            ClassA.prototype = { a:1, b:function(){} };
           ClassA.prototype.a = 1; //设置 prototype属性指向对象的a属性。
           ClassA.prototype.b = function(){}; // 设置 prototype属性指向对象的b方法。

说明:http://www.javaeye.com/topic/53537
二,关于创建对象
          类定义有三种基本方法:
         1. 工厂函数。例如
               function CoFactory(){
                  var o = new Object;
                  o.a = 1 return o
             }
             用这种方式创建对象: var o = CoFactory();
      
         2. 构造函数。例如
               function Co(){
                         this.a = 1
            }
             用这种方式创建对象:var o = new Co()。

          3. 构造函数+原型。例如
            function Co(){
             }
            Co.prototype.a = 1;
           用这种方式创建对象: var o = new Co();

          类对象有静态属性和方法。可以通过ClassA.a进行访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值