在JavaScript中建立新物件(轉)

amyz發表於2007-08-12
在JavaScript中建立新物件(轉)[@more@]

  使用JavaScript可以建立自己的物件。雖然JavaScript內部和瀏覽器本身的功能已十分強大,但JavaScript還是提供了建立一個新物件的方法。使其不必像超文字標識語言那樣,求於或其它多媒體工具,就能完成許多複雜的工作。

  在JavaScript中建立一個新的物件是十分簡單的。首先它必須定義一個物件,而後再為該物件建立一個例項。這個例項就是一個新物件,它具有物件定義中的基本特徵。

  一、物件的定義

  JavaScript物件的定義,其基本格式如下:

  Function Object(屬性表)

  This.prop1=prop1

  This.prop2=prop2

  ...

  This.meth=FunctionName1;

  This.meth=FunctionName2;

  ...

  在一個物件的定義中,可以為該物件指明其屬性和方法。透過屬性和方法構成了一個物件的例項。如以下是一個關於University物件的定義:

  Function university(name,city,creatDate URL)

  This.name=name

  This.city=city

  This.creatDate=New Date(creatDate)

  This.URL=URL

  其基本含義如下:

  Name-指定一個“單位”名稱。  

  City-“單位”所在城市。  

  CreatDate-記載university物件的更新日期。  

  URL-該物件指向一個網址。

  二、建立物件例項

  一旦物件定義完成後,就可以為該物件建立一個例項了:

  NewObject=New object();

  其中Newobjet是新的物件,Object已經定義好的物件。例:

  U1=New university(“雲南省”,“昆明市”,"January 05,199712:00:00","")

  U2=New university(“雲南電子科技大學”,“昆明”,"January 07,1997 12:00:00","htlp://")

  三、物件方法的使用

  在物件中除了使用屬性外,有時還需要使用方法。在物件的定義中,我們看到This.meth=FunctionName語句,那就是為定義物件的方法。實質物件的方法就是一個函式FunctionName,透過它實現自己的意圖。

  例在university物件中增加一個方法,該方法是顯示它自己本身,並返回相應的字串。

  function university(name,city,createDate,URL)

  This.Name=Name;

  This.city=city;

  This.createDate=New Date(creatDate);

  This.URL=URL;

  This.showuniversity=showuniversity;

  其中This.showuniversity就是定義了一個方法---showuniversity()。

  而showuniversity()方法是實現university物件本身的顯示。

  function showuniversity()

  For (var prop in this)

  alert(prop+="+this[prop]+"");

  其中alert是JavaScript中的內部函式,顯示其字串。

  四、JavaScript中的陣列 

  使用New建立陣列

  JavaScript中沒有提供像其它語言具有明顯的陣列型別,但可以透過function定義一個陣列,並使用New物件運算子建立一個具有下標的陣列。從而可以實現任何資料型別的儲存。

  a、定義物件的陣列

  Function arrayName(size){

  This.length=Size;

  for(var X=; X<=size;X++)

  this[X]=0;

  Reture this;

  }

  其中arrayName是定義陣列的一個名子,Size是有關陣列大小的值(1-size),即陣列元素的個數。透過for迴圈對一個當前物件的陣列進行定義,最後返回這個陣列。

  從中可以看出,JavaScript中的陣列是從1到size,這與其它0到size的陣列表示方法有所不同,當然你可根據需要將陣列的下標由1到size調整到0到size-1,可由下列實現:

  Function arrayName (size)

  For (var X=0; X<=size;X++)

  this[X]=0;

  this.lenght=size;

  Return this;

  從上面可以看出該方法是隻是調整了this.lenght的位置,該位置是用於儲存陣列的大小的。從而調整後的陣列的下標將與其它語言一致。但請讀者注意正是由於陣列下標順序由1到size,使得JavaScript中的物件功能更加強大。

  b、建立陣列例項

  一個陣列定義完成以後,還不能馬上使用,必須為該陣列建立一個陣列例項:

  Myarray=New arrayName(n);

  並賦於初值:

  Myarray[1]=“字串1”;

  Myarray[2]=“字串2”;

  Myarray[3]=“字串3”;

  ...

  Myarray[n]=“字串n”;

  一旦給陣列賦於了初值後,陣列中就具有真正意義的資料了,以後就可以在程式設計過程中直接引用。

  建立多維陣列

  Function creatMArray(row,col){

  var indx=0;

  this.length=(row*10)+col

  for(var x=1;x<=row;x++)

  for(var y=1;y<=col;y++)

  indx=(x*10)+y;

  this[indx]=””;

  }

  myMArray=new creatMArray();

  之後可透過myMArray[11]、myMArray[12]、myMArray[13]、myMArray[21]、myMArray[22]、myMArray[23]、

  …來引用。

  內部陣列

  在Java中為了方便內部物件的操作,可以使用窗體(Forms)、框架(Frames)、元素(element)、連結(links)和錨(Anchors)陣列實現物件的訪問。

  anchors[]:使用《A name=“anchorName“》標識來建立錨的連結。

  links[]: 使用來定義一個越文字連結項。

  Forms[]: 在程式中使用多窗體時,建立該陣列。

  Elements[]:在一個視窗中使用從個元素時,建立該陣列。

  Frames[]:建立框架時,使用該陣列

  anchors[]用於窗體的訪問(它是透過《form name=“form1”》所指定的),link[]用於被連結到的錨點的訪問(它是透過《a href=URL》所指定的)。Forms[]反映窗體的屬性,而anchors[]反映Web頁面中的連結屬性。

  有關錨陣列的文件:

  

  

  

   定義第一個錨名

  HTML Code

   定義第二個錨名

  HTML Code

  建立錨的連結

  

  ….

  該文件段建立了兩面全錨的連結,可透過Anchors[]訪問這些錨。document.Anchors[0]反映第一個錨,而document.Anchors[1]反映第二個錨的有關資訊。

  五、範例

  範例1:一個動態文字滾動的例子。

  test5_1.htm

  

alink="#008080"

text="#C0C0C0">

  範例2:顏色變化的例子。

  test5_2.htm

  

  本講介紹了使用者自行建立物件的方法, 使用者可根據需要建立自己的物件。並介紹了JavaScript中建陣列的方法。

相關文章