回答編集履歴

2

文言

2021/03/28 17:21

投稿

int32_t
int32_t

スコア20914

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の例を追加

2021/03/28 17:21

投稿

int32_t
int32_t

スコア20914

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
+ ```