Java面向对象和JavaScript面向对象的区别
JS面向对象是采用原型链的方式设计的,JAVA是采用正统的面向对象的思想设计的.
1.面向对象的能力
JS对于对象的理解为“属性的无序集合,每个属性存放一个原始值、对象或函数”JS只有一种访问作用域public. JS不支持静态作用
Java的对象是具有类定义,类有方法,属性,还有静态,和访问作用域(public ,private, protected)。java支持静态作用域
早绑定与晚绑定
所谓绑定,是把对象的接口和对象实例结合在一起的方法。
早绑定,是在实例化对象之前定义它的特性与方法,编译器或解释程序就能提前转为机器代码。java是属于早绑定.
晚绑定,是编译器和解释程序在运行前,不知道对象的类型。ECMAScript的所有变量采用晚绑定。
2.定义类或者对象
JS定义类或者对象的方法有6种:
目前广泛使用的是构造函数/原型方式。动态原型方法也很流行,功能上与构造函数/原型等价
·工厂方法 提供能创建并返回特定类型对象的工厂函数
function createCar(sColor, iDoors, iMpg){
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iDoors;
oTempCar.mpg = iMpg;
oTempCar.showColor = function (){
alert(this.color);
};
return oTempCar;
}
varCar1 = createCar("red", 4, 23);
·构造函数方式 第一步选择类名,即构造函数的名字,根据惯例这个构造函数的首字母大写。
function Car(sColor, iDoors, iMpg){
this.color = sColor;
this