克服JS奇怪的部分_ 物件

Huang Pei
3 min readApr 29, 2019

--

物件與「點」/ 物件與物件實體/ JSON 與物件實體

本筆記出自:JavaScript 全攻略:克服 JS 的奇怪部分

物件:一群「名稱/值」的組合,而這些值也可以是另一個「名稱/值」的組合。

物件在記憶體中有個位置,能夠參考到其他和它相關東西的記憶體位置,所以它知道那些不同的屬性(純值、其他物件)和方法(函式)在哪。

物件的值可以是:純值(屬性)/其他的物件(屬性)/函式(方法)
  • 物件與「點」
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 }')

--

--

Huang Pei
Huang Pei

Written by Huang Pei

記錄用倉庫,歡迎指正。菜鳥前端,最菜的那種(超能力少女です)。

No responses yet