易截截图软件、单文件、免安装、纯绿色、仅160KB

[整理]JavaScript最流行的2种定义类的方式

转自:http://www.cnblogs.com/greki/archive/2009/06/02/1494863.html
其它方式:工厂方式,构造函数方式,原型方式都各有各的大缺陷,这里就不一一介绍了,想了解的可以去看一下这本著作的第3章节。
1. 混合构造函数/原型方式
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);
};
var  oCar1  = new  Car(“red”,  4 ,  23 );
var  oCar2  = new  Car(“blue”,  3 ,  25 );
oCar1.drivers.push(“Matt”);
alert(oCar1.drivers);  // outputs “Mike,Sue,Matt”
alert(oCar2.drivers);  // outputs “Mike,Sue”
优点:具有其它方式的优点而没有其它方式的缺点
不足:封装性欠缺
2 . 动态原型方式

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 ;
  }
}
优点:封装性比上一个方式更好
不足:就是看上去奇怪一点,呵呵
总之,以上2种方式是目前最广泛使用的,尽量使用它们避免不必要的问题。


相关文档:

JavaScript constructor属性

Definition and Usage
定义与用法The constructor property is a reference to the function that created an object.
constructor属性是所建立对象的函数参考Syntax
语法object.constructor
Example 1
举例
In this example we will show how to use the constructor property:
在这个举例中我们将展示如何使用cons ......

张孝详javascript讲座笔记一

一,脚本程序与javascript
      嵌套在HTML中的语言称为脚本语言,浏览器必须具有脚本引擎对嵌入HTML中的脚本程序进行解释。
     eg:
     <HTML>
<script language="JavaScript">
//VBScript,Jscript,ECMAScript
<!--
alert(n ......

javascript一段时间代码

<SCRIPT language=javaScript>
<!--
now = new Date(),hour = now.getHours()
if(hour < 6){document.write("凌晨好!")}
else if (hour < 9){document.write("早上好!")}
else if (hour < 12){document.write("上午好!")}
else if (hour < 14){document.write("中午好!")}
else if (hour &l ......

JavaScript常用方法总结——一些函数

根据身份证号码取得生日与性别,并判断18位身份证的正确与错误:
function showBirthday(val){
var birthdayValue;
if(15==val.length){//15位身份证号码
birthdayValue = val.charAt(6)+val.charAt(7);
if(parseInt(birthdayValue)<10){
birthdayValue = '20'+birthdayValue;
}else{
birthdayValue = '1 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号