回答編集履歴
2
文言
test
CHANGED
@@ -5,6 +5,10 @@
|
|
5
5
|
for in で `greet` の内容も表示しているためです。
|
6
6
|
|
7
7
|
ちゃんとgreetをプロトタイプに入れれば`this`が使えます。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
以下のコードでは`String`型のプロトタイプを変更していますが、問題の意図はもしかしたら`String`を継承した型を作れということかもしれません。
|
8
12
|
|
9
13
|
|
10
14
|
|
@@ -36,9 +40,7 @@
|
|
36
40
|
|
37
41
|
|
38
42
|
|
39
|
-
まったく初歩的ではないと思いますよ。今どきのJavaScript初学者がプロトタイプ操作を学ぶ必要はありません。
|
43
|
+
まったく初歩的ではないと思いますよ。今どきのJavaScript初学者がプロトタイプ操作を学ぶ必要はありません。
|
40
|
-
|
41
|
-
|
42
44
|
|
43
45
|
|
44
46
|
|
1
classの例を追加
test
CHANGED
@@ -5,16 +5,6 @@
|
|
5
5
|
for in で `greet` の内容も表示しているためです。
|
6
6
|
|
7
7
|
ちゃんとgreetをプロトタイプに入れれば`this`が使えます。
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
> 初歩的な問題だとは思いますが
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
まったく初歩的ではないと思いますよ。今どきのJavaScript初学者がプロトタイプ操作を学ぶ必要はありません。
|
16
|
-
|
17
|
-
|
18
8
|
|
19
9
|
|
20
10
|
|
@@ -39,3 +29,39 @@
|
|
39
29
|
}
|
40
30
|
|
41
31
|
```
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
> 初歩的な問題だとは思いますが
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
まったく初歩的ではないと思いますよ。今どきのJavaScript初学者がプロトタイプ操作を学ぶ必要はありません。既存の型のプロトタイプを変更するなんて、ほぼ禁じ手です。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
----
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
参考までに、いまどきのJavaScriptなら以下のように`class`でやります。
|
50
|
+
|
51
|
+
```javascript
|
52
|
+
|
53
|
+
class MyString extends String {
|
54
|
+
|
55
|
+
greet(greeting) {
|
56
|
+
|
57
|
+
return `${greeting}, ${this}!`;
|
58
|
+
|
59
|
+
}
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
const g = new MyString('World');
|
64
|
+
|
65
|
+
console.log(g.greet('Hello'));
|
66
|
+
|
67
|
+
```
|