欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析JavaScript訪問對象屬性和方法及區(qū)別

 更新時間:2015年11月16日 10:19:39   投稿:mrr  
這篇文章主要介紹了淺析JavaScript訪問對象屬性和方法及區(qū)別的相關(guān)資料,需要的朋友可以參考下

屬性是一個變量,用來表示一個對象的特征,如顏色、大小、重量等;方法是一個函數(shù),用來表示對象的操作,如奔跑、呼吸、跳躍等。

在JavaScript中通常使用”."運算符來存取對象的屬性的值。或者使用[]作為一個關(guān)聯(lián)數(shù)組來存取對象的屬性。

對象的屬性和方法統(tǒng)稱為對象的成員。

訪問對象的屬性

在JavaScript中,可以使用“ . ”和“ [ ] ”來訪問對象的屬性。

1. 使用“ . ”來訪問對象屬性

語法:

    objectName.propertyName

其中,objectName 為對象名稱,propertyName為屬性名稱。

2. 使用“ [ ] ”來訪問對象屬性

語法:

    objectName[propertyName]

其中,objectName 為對象名稱,propertyName為屬性名稱。

訪問對象的方法

在JavaScript中,只能使用“ . ”來訪問對象的方法。

語法:

    objectName.methodName()

其中,objectName 為對象名稱,methodName() 為函數(shù)名稱。

【例5-1】創(chuàng)建一個Person類:

function Person() {
  this.name=" 張三 "; // 定義一個屬性 name
  this.sex=" 男 "; // 定義一個屬性 sex
  this.age=22; // 定義一個屬性 age
  this.say=function(){ // 定義一個方法 say()
    return "嗨!大家好,我的名字是 " + this.name + " ,性別是 " + this.sex + ",今年 " + this.age +"歲!";
  }
}
var zhangsan=new Person();
alert("姓名:"+zhangsan.name); // 使用“.”來訪問對象屬性
alert("性別:"+zhangsan.sex);
alert("年齡:"+zhangsan["age"]); // 使用“[ ]”來訪問對象屬性
alert(zhangsan.say);  // 使用“.”來訪問對象方法

PS:淺析對象訪問屬性的"."和"[]"方法區(qū)別

在JavaScript中通常使用”."運算符來存取對象的屬性的值?;蛘呤褂肹]作為一個關(guān)聯(lián)數(shù)組來存取對象的屬性。但是這兩種方式有什么區(qū)別了?

例如,讀取object中的property屬性值:

    object.property

    object['property']

以上兩種方式都可以實現(xiàn)屬性的存取。

1.語法方面的區(qū)別

點表示法的對象的屬性名是標(biāo)識符,而后者的屬性名則是一個字符串。

2.靈活性方面的區(qū)別

在JavaScript編寫程序中,可以為對象創(chuàng)建任意數(shù)目的屬性。但使用”.“運算符來存取一個對象的屬性時,屬性名是用標(biāo)識符表示的。而在JavaScript程序中,標(biāo)識符必須被逐字地輸入,它們不是一種數(shù)據(jù)類型,因此程序不能對其操作。也就是說,標(biāo)識符是靜態(tài)的,在程序中必須對其進行硬編碼。

而使用數(shù)組[]表示法來存取一個對象的屬性時,屬性名是用字符串表示的。字符串是JavaScript的一種數(shù)據(jù)類型,因此可以在程序運行中操作并創(chuàng)建它們。

3.性能方面區(qū)別

數(shù)組[]表示法在存取屬性值時會進行表達式運行。而點表示法是直接存取屬性值,理論上執(zhí)行效率會比數(shù)組表示法高。性能方面其實可以忽略。

某些場景必須用到數(shù)組表示法來動態(tài)存取屬性值,這個是點表示法無法做到的。

總的來說,這兩種方法區(qū)別上不大,都有對應(yīng)的使用場景。點表示法一般作為靜態(tài)對象使用時來存取屬性。而數(shù)組表示法在動態(tài)存取屬性時就非常有用。

相關(guān)文章

最新評論