物件的操作語法

物件的操作語法

JavaScript 使用 for...infor each...inwith 語法來操作物件。

for...in 語法

for...in 語法可處理對應物件的所有屬性的指定變數。JavaScript 會對每一個對應的屬性來執行指定的語句。for...in 語句如下︰

for (variable in object) {
   statements
}

範例
以下函數接受物件和物件的名稱作為自己的參數。然後函數反覆遍歷物件的屬性,並返回列出屬性名稱和值的字串。

function dump_props(obj, obj_name) {
   var result = "";
   for (var i in obj) {
      result += obj_name + "." + i + " = " + obj[i] + "<br>";
   }
   result += "<hr>";
   return result;
}

以帶有屬性 makemodel 的物件 car 為例,輸出結果如下︰

car.make = Ford
car.model = Mustang

陣列
雖然使用這個方法來處理所有的 Array 元素很是誘人,但如果你修改了 Array 物件,例如加入自訂的屬性或方法,for...in 語法就只會處理除了陣列元素以外的所有使用者定義的屬性,for...in 語法將會返回你的使用者定義的屬性的名稱,除了數字索引以外。因此在處理陣列時,最好還是使用傳統的 for 循環,並配合數字索引。

for each...in 語法

for each...in 是在 JavaScript 1.6 中引入的循環語法,他很類似 for...in,但不是針對物件的屬性的名稱,而是物件的屬性的值。

with 語法

with 語法為一整組的語句確立了預設的物件。JavaScript 會在一整組語法之內找出所有不合格的名稱,只要這個名稱是預設物件的屬性,就會將其確定。如果有一個不合格的名稱符合其中一個屬性,然後就會在語句中使用這個屬性。否則,就會被當成局域或全域的變數。

with 語法如下︰

with (object) {
   statements
}

範例
以下 with 語法指定 Math 物件為預設的物件。with 語法裡面使用了 PI 屬性和 cossin 方法的語句,而無需指定物件。JavaScript 會假定他們參照的是 Math 物件。

var a, x, y;
var r = 10;
with (Math) {
   a = PI * r * r;
   x = r * cos(PI);
   y = r * sin(PI/2);
}

附註︰雖然使用 with 語句可以使你的程式更加簡潔,但不當使用 with 也會在一定程度上使你的程式速度變慢。參閱 Core JavaScript 1.5 參考:語法:with

 

文件標籤與貢獻者

 此頁面的貢獻者: teoli, happysadman
 最近更新: teoli,