javascript对象入门(1)

来源:互联网 发布:水杉软件32位 编辑:程序博客网 时间:2024/05/23 18:10

2 对象基础

2.1 OO术语

2.1.1 怎样才能称为OO语言?

一个语言要被称为OO语言,它必须为开发者提供四个基本特性:

·Encapsulation(封装)--将相关信息:无论是数据或方法都贮存在一起,成为一个对象;

·Aggregation(聚合)--能在一个对象中存放另一对象 ;

·Inheritantance(继承)--一个类中的一些属性和方法依赖于某一个类(或某几个类)

·Polymorphism(多态)--一个方法或函数可以以多种方式进行工作;

ECMAScript支持以上所有四种特性,因此它被认为面向对象语言。

2.1.2 对象的成份

对象的成份?当然不是碳水化合物。事实上,在ECMAScript中,对象由一些特性(attributes)组成,这些特性可能是基本数据类型,或者一个索引值。如果这个特性包含函数,则被称为对象的“方法”(method),否则,被称为对象的“属性”(property)

 

2.2 与对象作伴

2.2.1 对象定义(等价于一般语言的类)与实例化

对象使用new关键字建立,返回一个实例,然后你可以给它一个你觉得合适的变量名:

var oObject = new Object();

var oStringObject = new String();

嗯上面的第一行代码建立一个object的实例,然后把它放在oObject的变量中;第二行则建立一个String的实例,然后把它放在oStringOject变量中。注意:如果没有参数,圆括号可以省略,就象这样:

var oObject = new Object;

var oStringObject = new String;

2.2.2 object references (对象引用)

前面我们介绍了对象引用类型(reference types)。这就是说,直接存取对象的物理表现是不可能的,你只能存取对象的引用。每当你建立一个对象时,这个对象的引用就被放入了变量中,而不是这个活动对象本身。

2.2.3 对象的销毁

ECMAScript带有垃圾收回程序,也说是说,你可以不必“生后手”(家乡土话:生前手,不生后手,呵呵,希望你能听得懂)。如果一个对象不再被引用,那么它就是一个可回收对象。垃圾回收程序一旦运行,所有的可回收对象就会被销毁。当一个函数或方法运行结束,垃圾回收程序就会被运行,回收所有的本地变量。嗯,不过,它也可能会运行任何时候,反正我是说不准。

如何你想某个对象被强迫回收,那么请给它赋null值,就象这样:

var oObject = new Object;

//do something with the object here

oObject = null;

对象给了null值,就不再有引用,这就意味着:下次垃圾收回程序运行时,它就会game over!

给不用的对象赋值为null是好习惯,你会让程序更少的出错,会让IE这样不负责任的垃圾回收器正常工作。IE的垃圾回收程序工作时常很糟糕,可能有些对象只有当页面unload(关闭)时,才会释放。

 

 
原创粉丝点击