Javascript高级程序设计 笔记(四) javascript对象创建
2012-06-23 22:41
447 查看
类创建方法
工厂方法模式:方法缺陷,没有new,与习惯不符,并且对象方法定义在外部,不太好。如果定义在内部,则每个对象都有个函数对象,浪费内存。
构造函数方式:方法缺陷,还是方法定义在外部不太好
原型方法:缺点,函数的定义定义在内部,并且所有的类共享一个函数对象。但是构造函数不能再指定参数了。并且,原型如果属性是对象的话会在不同对象之间共享
混合的构造函数:非函数属性用构造函数定义,函数属性用原型方式指定。缺点:还是不太符合oop程序员的编程观念,因为诸如java之类的编程语言将函数和属性封装一起
最终版:其实还是前一个版本常用
工厂方法模式:方法缺陷,没有new,与习惯不符,并且对象方法定义在外部,不太好。如果定义在内部,则每个对象都有个函数对象,浪费内存。
function showColor(){ alert(this.color); } function createCar(sColor , iDoors, iMpg){ var oTempCar = new Object; oTempCar.color = sColor; oTempCar.doors = iDoors; oTempCar.mpg = iMpg; oTempCar.showColor = showColor; return oTempCar; } var oCar = createCar("red",4,23); oCar.showColor();
构造函数方式:方法缺陷,还是方法定义在外部不太好
function showColor(){ //定义在外面,可以防止每个对象都创建一个函数对象 alert(this.color); } function Car( sColor, iDoors ,iMpg){ //构造函数一般首字母大写,来区分其它普通函数 this.color = sColor; this.doors = iDoors; this.mpg = iMpg; this.showColor = showColor; } //默认返回this var oCar = new Car("red", 4 ,23); //使用new调用构造函数时,第一行代码执行执之前首先创建了一个对象 oCar.showColor();
原型方法:缺点,函数的定义定义在内部,并且所有的类共享一个函数对象。但是构造函数不能再指定参数了。并且,原型如果属性是对象的话会在不同对象之间共享
function Car(){ //只是定义了类名 } Car.prototype.color = "red" Car.prototype.doors = 4; Car.prototype.mpg = 23; Car.prototype.showColor = function(){ alert(this.color); } var oCar = new Car();
混合的构造函数:非函数属性用构造函数定义,函数属性用原型方式指定。缺点:还是不太符合oop程序员的编程观念,因为诸如java之类的编程语言将函数和属性封装一起
function Car( sColor, iDoors ,iMpg){ this.color = sColor; this.doors = iDoors; this.mpg = iMpg; this.showColor = showColor; }
Car.prototype.showColor = function(){ alert(this.color); }
var oCar = new Car("red", 4 ,23); //使用new调用构造函数时,第一行代码执行执之 oCar.showColor();
最终版:其实还是前一个版本常用
function Car( sColor, iDoors ,iMpg){
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.showColor = showColor;
if( typeof this._init_== "undefined"){
Car.prototype.showColor = function(){ alert(this.color); }
};
_init = true;
}
相关文章推荐
- JavaScript高级程序设计-学习笔记4(创建对象)
- JavaScript高级程序设计之面向对象的程序设计之创建对象之寄生构造函数模式 第6.2.6讲笔记
- JavaScript高级程序设计之面向对象的程序设计之创建对象之原型模式 第6.2.3讲笔记
- JavaScript高级程序设计之面向对象的程序设计之创建对象之稳妥构造函数模式 第6.2.7讲笔记
- 《JavaScript高级程序设计 第三版》学习笔记 (四) 对象创建详解
- JavaScript高级程序设计之面向对象的程序设计之创建对象之工厂模式第6.2.1讲笔记
- JavaScript高级程序设计之面向对象的程序设计之创建对象之 构造函数模式第6.2.2讲笔记
- JavaScript高级程序设计之面向对象的程序设计之创建对象之组合使用构造函数模式和原型模式 第6.2.4讲笔记
- <JavaScript高级程序设计>笔记二: 创建对象
- JavaScript高级程序设计笔记之面向对象
- JavaScript高级程序设计(第3版)学习笔记11 内建js对象
- JavaScript高级程序设计【面向对象-创建对象2】
- JavaScript高级程序设计(第3版)学习笔记11——内建对象
- JavaScript高级程序设计(第3版)学习笔记10 再访js对象
- JavaScript高级程序设计之BOM之window 对象之全局作用域 第8.1.1讲笔记
- JavaScript高级程序设计之BOM之screen 对象& history 对象第8.3讲笔记
- JavaScript高级程序设计学习笔记--事件(二)(事件对象--DOM中的事件对象/IE中的事件对象/跨浏览器的事件对象)
- JavaScript高级程序设计之引用类型之单体内置对象之Global对象第5.7.1讲笔记
- javascript高级程序设计一书----关于创建和对象继承的总结
- JavaScript高级程序设计--对象创建的三种方法