Skip to content

Commit 1ac33f4

Browse files
committed
Translation zh-TW answer 66
1 parent 570f2df commit 1ac33f4

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

zh-TW/README_zh-TW.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2047,3 +2047,57 @@ multiply(value);
20472047
</details>
20482048

20492049
---
2050+
2051+
###### 66. 使用哪個建構式可以成功繼承 Dog 類別?
2052+
2053+
```javascript
2054+
class Dog {
2055+
constructor(name) {
2056+
this.name = name;
2057+
}
2058+
};
2059+
2060+
class Labrador extends Dog {
2061+
// 1
2062+
constructor(name, size) {
2063+
this.size = size;
2064+
}
2065+
// 2
2066+
constructor(name, size) {
2067+
super(name);
2068+
this.size = size;
2069+
}
2070+
// 3
2071+
constructor(size) {
2072+
super(name);
2073+
this.size = size;
2074+
}
2075+
// 4
2076+
constructor(name, size) {
2077+
this.name = name;
2078+
this.size = size;
2079+
}
2080+
2081+
};
2082+
```
2083+
2084+
- A: 1
2085+
- B: 2
2086+
- C: 3
2087+
- D: 4
2088+
2089+
<details><summary><b>Answer</b></summary>
2090+
<p>
2091+
2092+
#### Answer: B
2093+
2094+
在子類別中,在呼叫 `super` 前不能存取 `this` 關鍵字,如果你這麼做,它將拋出一個 `ReferenceError`,建構式1與4會引發這個錯誤。
2095+
2096+
使用 `super` 關鍵字時,我們要提供參數給父類別呼叫其建構式。父類別需要接受一個 `name` 參數,所以我們需要把 `name` 傳給 `super`
2097+
2098+
`Labrador` 類別接收兩個參數, `name` 參數是由於它繼承了 `Dog``size` 作為`Labrador` 類的額外屬性,它們都需要傳遞給 `Labrador` 的建構式,因此使用建構式2是正確答案。
2099+
2100+
</p>
2101+
</details>
2102+
2103+
---

0 commit comments

Comments
 (0)