File tree Expand file tree Collapse file tree 2 files changed +7
-10
lines changed Expand file tree Collapse file tree 2 files changed +7
-10
lines changed Original file line number Diff line number Diff line change 21
21
22
22
### 物件做為數據類型
23
23
24
- JavaScript 的物件可以作為 [ * Hashmaps* ] [ 1 ] 使用,主要用來保存命名的建與值的對應關係 。
24
+ JavaScript 的物件可以作為 [ * Hashmaps* ] [ 1 ] 使用,主要用來保存命名的鍵與值的對應關係 。
25
25
26
- 使用物件的字面語法 - ` {} ` - 可以創建一個簡單的物件。 這個新創建的物件從 ` Object.prototype ` [ 繼承] ( #object.prototype ) ,下面,沒有任何 [ 字定義屬性 ] ( #object.hasownproperty ) 。
26
+ 使用物件的字面語法 - ` {} ` - 可以創建一個簡單的物件。 這個新創建的物件從 ` Object.prototype ` [ 繼承] ( #object.prototype ) ,下面,沒有任何 [ 自定義屬性 ] ( #object.hasownproperty ) 。
27
27
28
28
var foo = {}; // 一個空的物件
29
29
@@ -44,10 +44,7 @@ JavaScript 的物件可以作為 [*Hashmaps*][1]使用,主要用來保存命
44
44
foo.1234; // SyntaxError
45
45
foo[ '1234'] ; // works
46
46
47
- 兩種語法是相等的,但是中括號在下面兩個情況依然有效
48
-
49
- - 動態設定屬性
50
- - 屬性不是一個有較的變數名
47
+ 兩種語法是相等的,唯一的差別是,使用中括號允許你動態的設定屬性,使用點操作不允許屬性為變數,否則會造成語法錯誤
51
48
52
49
### 刪除屬性
53
50
Original file line number Diff line number Diff line change 1
1
## Prototype
2
2
3
- JavaScript 不包含原本繼承的模型。然而它使用的是 * prototypal * 原型 。
3
+ JavaScript 不包含原本繼承的模型。然而它使用的是* 原型 * 模型 * 。
4
4
5
5
然而常常有人提及 JavaScript 的缺點,就是基於原本繼承模型比類繼承更強大。
6
6
現實傳統的類繼承模型是很簡單。但是在 JavaScript 中實現元繼承則要困難很多。
@@ -51,7 +51,7 @@ JavaScript 不包含原本繼承的模型。然而它使用的是 *prototypal*
51
51
52
52
當查詢一個物件的屬性時,JavaScript 會 ** 向上** 查詢,直到查到指定名稱的屬性為止。
53
53
54
- 如果他查到原型鏈的頂部 - 也就是 ` Object.prototype ` - 但是仍然每有指定的屬定 ,就會返回 [ undefined] ( #core.undefined ) 。
54
+ 如果他查到原型鏈的頂部 - 也就是 ` Object.prototype ` - 但是仍然沒有指定的屬定 ,就會返回 [ undefined] ( #core.undefined ) 。
55
55
56
56
### 原型屬性
57
57
@@ -70,9 +70,9 @@ JavaScript 不包含原本繼承的模型。然而它使用的是 *prototypal*
70
70
71
71
### 擴展 Native Prototype
72
72
73
- 一個經常錯誤使用的特定 ,那就是擴展 ` Object.prototype ` 或者是其他內置類型的原型物件 。
73
+ 一個經常發生的錯誤 ,那就是擴展 ` Object.prototype ` 或者是其他內建類型的原型物件 。
74
74
75
- 這種技術叫做 [ monkey patching] [ 1 ] 並且會破壞 * 封裝* 。雖然被廣泛的應用到一些 Javascript 的架構,但是我仍然認為內置類型添加是一個 * 非標準* 的函式的好方法
75
+ 這種技術叫做 [ monkey patching] [ 1 ] 並且會破壞 * 封裝* 。雖然被廣泛的應用到一些 Javascript 的架構,像是 [ Prototype ] ( http://prototypejs.org ) , 但仍然沒有好的理由新增一個 * 非標準* 的功能去搞亂內建型別
76
76
77
77
擴展內置類型的 ** 唯一** 理由是為了和新的 JavaScript 保持一致,比如說 [ ` Array.forEach ` ] [ 3 ]
78
78
You can’t perform that action at this time.
0 commit comments