物件與「點」/ 物件與物件實體/ JSON 與物件實體
物件:一群「名稱/值」的組合,而這些值也可以是另一個「名稱/值」的組合。
物件在記憶體中有個位置,能夠參考到其他和它相關東西的記憶體位置,所以它知道那些不同的屬性(純值、其他物件)和方法(函式)在哪。
- 物件與「點」
var person = new Object() //建立新的物件,不推薦用這種方式
_____法1: 使用 物件[名稱] 的方式新增值person[‘first name’]=’Tony’;
var firstNameProperty = ‘first name’
console.log(person[firstNameProperty]) //'Tony'
_____法2(較推薦): 使用 物件.名稱 的方式新增值person.address = new Object();
person.address.city=’New York’
_____console.log(person.address.city) //’New York’
console.log(person[‘address’][‘city’]) //’New York’
- 物件與物件實體
直接建立大括號與內附名稱與值,較推薦
var Tony = {
firstname:’Tony’,
Lastname:’Alicea’,
address:{
street:’111 Main St.’,
city:’New York’,
state:’NY’}
}
- 框架-偽裝命名空間
命名空間(Namespace)
A container for variables and functions
Typically to keep variables and functions with the same name separate.
一個包裝物、一個容器,通常用來維持變數和函數的名稱分開。
var greet = ‘Hello!’;
var greet = ‘Hola!’;console.log(greet); //當變數撞名時,前者被後者複寫掉_____利用物件當作容器,偽裝成命名空間,避免變數重複的衝突問題。var english = {
greet:'Hello'}var spanish = {
greet:‘Hola!’}english.greet = 'Hello'
spanish.greet = 'Halo'
- JSON 與物件實體
JavaScript Object Notation (JSON)<
JSON 是被 JavaScript的物件實體語法啟發,是個網路傳送資料的好格式。
規定:屬性需要被包在引號裡面
{
"firstname": 'Mary',
"isprogrammer": true
}
將物件轉換為JSON格式:
var objectLiteral= {
firstname: 'Mary',
isprogrammer: true}JSON.stringnify(objectLiteral)
將JSON轉換為物件格式:
var jsonValue =
JSON.parse('{ "firstname": 'Mary', "isprogrammer": true }')