您的位置:首页 > Web前端 > JavaScript

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

2010-10-11 13:52 369 查看
基础知识

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进行访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: