javascript 类定义的4种方法

 更新时间:2009年09月12日 21:51:47   作者:  
javascript 类定义的4种方法,大家可以参考下根据需要选择。
复制代码 代码如下:

/*
工厂方式--- 创建并返回特定类型的对象的 工厂函数 ( factory function )
*/
function createCar(color,doors,mpg){
var tempCar = new Object;
tempCar.color = color;
tempCar.doors = doors;
tempCar.mpg = mpg;
tempCar.showCar = function(){
alert(this.color + " " + this.doors);
}
return tempCar;
}

/*
构造函数方式--- 构造函数看起来很像工厂函数
*/
function Car(color,doors,mpg){
this.color = color;
this.doors = doors;
this.mpg = mpg;
this.showCar = function(){
alert(this.color);
};
}
/*
原型方式--- 利用了对象的 prototype 属性,可把它看成创建新对象所依赖的原型
*/
function Car(color,doors,mpg){
this.color = color;
this.doors = doors;
this.mpg = mpg;
this.drivers = new Array("nomad","angel");
}

Car.prototype.showCar3 = function(){
alert(this.color);
};

/*
混合的构造函数 /原型方式--- 用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法)
*/
function Car(sColor, iDoors, iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike", "Sue");
}

Car.prototype.showColor = function () {
alert(this.color);
};
/*
动态原型方法--- 在构造函数内定义非函数属性,而函数属性则利用原型属性定义。唯一的区别是赋予对象方法的位置。
*/
function Car(sColor, iDoors, iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike", "Sue");

if (typeof Car._initialized == "undefined") {

Car.prototype.showColor = function () {
alert(this.color);
};

Car._initialized = true;
}
} //该方法使用标志( _initialized )来判断是否已给原型赋予了任何方法。

相关文章

  • JavaScript 继承使用分析

    JavaScript 继承使用分析

    继承,通俗地说,之前你写过一些类,这些类中有一些是而你现在要写的类的功能的子集或者基本相同,那么你不用完全重新写一个新的类,你可以把之前写的类拿过来使用.这样的一种代码重用过程就叫做继承
    2011-05-05
  • JavaScript对象模型-执行模型

    JavaScript对象模型-执行模型

    数据类型,基本数据类型基本数据类型是JS语言最底层的实现。
    2008-04-04
  • js定义对象简单学习例子

    js定义对象简单学习例子

    js定义对象简单学习例子...
    2007-09-09
  • JAVASCRIPT  THIS详解 面向对象

    JAVASCRIPT THIS详解 面向对象

    在面向对象编程语言中,对于this关键字我们是非常熟悉的。比如C++、C#和Java等都提供了这个关键字
    2009-03-03
  • js继承 Base类的源码解析

    js继承 Base类的源码解析

    Base据说是最好的js继承的封装类,最近读了一下base2.js的继承部分,现在将源码的解析贴下,有错误的地方希望大家指出,我会更新的.
    2008-12-12
  • 关于JavaScript定义类和对象的几种方式

    关于JavaScript定义类和对象的几种方式

    在说这个话题之前,我想先说几句题外话:最近偶然碰到有朋友问我“hoisting”的问题。即在js里所有变量的声明都是置顶的,而赋值则是在之后发生的。
    2010-11-11
  • JavaScript类和继承 this属性使用说明

    JavaScript类和继承 this属性使用说明

    本文介绍了JavaScript里面的this属性。这个属性是理解JavaScript类和继承的重要基础。
    2010-09-09
  • javascript面向对象之二 命名空间

    javascript面向对象之二 命名空间

    javascript中本没有命名空间的概念,但是要体现面向对象的思想,应当有命名空间,就像java中的package,.net中的namespace一样,作用主要为了防止类名冲突,相同的类名只要属于不同的命名空间,便不会冲突。
    2011-02-02
  • javascript 面向对象全新理练之继承与多态

    javascript 面向对象全新理练之继承与多态

    前面我们讨论了如何在 JavaScript 语言中实现对私有实例成员、公有实例成员、私有静态成员、公有静态成员和静态类的封装。这次我们来讨论一下面向对象程序设计中的另外两个要素:继承与多态。
    2009-12-12
  • js面向对象 多种创建对象方法小结

    js面向对象 多种创建对象方法小结

    js面向对象 多种创建对象方法小结,需要的朋友可以参考下
    2012-05-05

最新评论