2016-06-23 33 views
0

我們在JavaScript中創建對象...我們什麼時候在javascript中使用點符號?

var myObj = { 
    name1: 'abc', 
    place1: 'xyz', 

name2: 'mno', 
place2: 'uvw', 

}; 

現在當我們試圖訪問PLACE1,我們應該怎麼辦呢?

myObj.place1 or myObj[place1] 
+0

'MyObj中[PLACE1]'不會工作,除非有一個名爲初始化的變量'place1' – gurvinder372

+1

第二個應該是MyObj中[ 「PLACE1」。這是你想如何使用它的符號。 – nikhil

回答

0

有情況下,您不能使用「對象點屬性」: 例如:

var obj={ 
    "hello world": 1, 
    "hello-world":2 
} 

obj.hello world //syntax error 
obj.hello-world //this is understood as (obj.hello) - world, a subtraction 

因此,要獲得這些屬性的唯一方法是使用

obj["hello world"] 
obj["hello-world"] 

通常使用點更安全,因爲任何IDE都可以檢查屬性是否已經創建,並且可以推斷出該類型是否正確,所以我的建議是使用object-dot-notation un少你不能。

另一種情況,你不能使用它是當你不知道屬性的名稱,例如:如果你正在使用的對象作爲地圖:

var map={}; 
function addUser(username,userId) { 
    map[userId]=username; 
} 

function getUserName(userId) { 
    return map[userId] 
} 

再回到您的示例:

var myObj = { 
    name1: 'abc', 
    place1: 'xyz', 

name2: 'mno', 
place2: 'uvw', 

}; 

推薦的方法來獲取值是:

myObj.place2 

但是你可以使用

myObj["place2"] 
+0

請使用我的代碼給我寫語法,如何訪問place2? –

1

myObj.place1會直接工作, myObj["place1"]也將直接工作。

,但如果你想使用myObj[place1] ...這裏place1被視爲從變量的值,使這項工作使用..

var myObj = { 
name1: 'abc', 
place1: 'xyz', 
name2: 'mno', 
place2: 'uvw', 
}; 

var Place1 = "place1"; 
myObj[Place1] 

我們使用「」點符號,當我們想通過屬性來訪問JS對象的值

0

只要遵循以下規則您可以使用點表示法:

屬性必須是一個有效的JavaScript標識符,即字母數字字符的序列,還包括不能以數字開頭的下劃線(「_」)和美元符號(「$」)。例如,對象。$ 1是有效的,而object.1不是。

您也可以使用一個數字作爲密鑰。但是請確保您在對象[1]中使用括號表示法而不是object.1(這會引發錯誤)。

http://javascriptissexy.com/javascript-objects-in-detail/

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors

相關問題