1.java和javascript是面向对象语言。而面向对象语言是高级语言,有很多的复杂的特征。而全面地了解和熟练的掌握了这些复杂的特征以后才可以熟练的运用面向对象语言。而且这些特征的实现只出现在高级语言中,没有这些特征就没有高级语言。
提到对象就会出现什么是对象这个问题,在面向对象语言中对象指万物。任何的事物都是对象。在面向对象语言中怎么创建对象呢?类,类是概括对象的属性和方法的集合。对象的特征有很多。但是在面向对象语言中表达的时候,分为2类。属性和方法。方法指对象的行为特征,用函数表示。不用函数表示的特征归类为属性。
2.面向对象语言的要求:
一种面向对象语言需要向开发者提供四种节本能力:
1.封装:把相关的信息(无论是数据或方法)存储在对象中的能力。
2.聚集:把一个对象存储在另一个对象的能力。
3.继承:由另一个类(或多个类)得来的属性和方法的能力。
4.多态:编写能以多种方法运行的函数或方法的能力。
3.对象的声明和创建(实例化)
对象是用关键字new后跟要实例化的类的名字创建的。
var oObject=new Object();
var oStringObject=new String();
第一行代码创建了Object类的一个实例,并把它存储在oObject变量中。第二行代码创建了String类的一个实例,把它存储在变量oStringObject中。如果构造函数无参数,括号则不是必须的。因此可以采用下面的形式重写上面的代码:
var oObject=new Object;
var oStringObject=new String;
4.对象的引用
对象的引用指指向对象存储地址的指针变量。不管是java还是ECMAScript中规定不能访问对象的物理地址,只能访问对象的引用。每次创建对象,存储在变量中的都是该对象的引用,而不是对象本身。
5.对象的废除
在ECMAScript中有无用存储单元收集程序,意味着不必专门销毁对象来释放内存,当再没有了对象的引用时,称该对象被废除了。运行无用存储单元收集程序时,所有的废除的对象都被销毁。每当函数执行完它的代码,无用存储单元收集程序都会运行,释放所有的局部变量,还有在一些不可预知的情况下,无用存储单元收集程序也会运行。
把对象的所有引用设置为null,可以强制性的废除对象。例如:
var oObject=new Object();
oObject=null;