質問編集履歴
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
##※注意
|
2
|
+
|
3
|
+
通常組み込みオブジェクトの内容を変更することは推奨されておりません。
|
4
|
+
|
5
|
+
学習用途以外では行わないようにしてくださいませ。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
##本文
|
10
|
+
|
11
|
+
|
12
|
+
|
1
13
|
`Date`クラスについて`chrome`のコンソールを用いていろいろいじってみています。
|
2
14
|
|
3
15
|
その中でふと`Date`クラスの`constructor`に処理を追加してみようとしました。
|
@@ -87,3 +99,83 @@
|
|
87
99
|
適当なクラスを作ってコンストラクター関数だけ使用しようとしてみるとエラーとなります。
|
88
100
|
|
89
101
|
`ビルトインオブジェクト`故にできない事なのかも?わからないですが・・・
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
##追記1
|
108
|
+
|
109
|
+
いろいろお答えいただき本当にありがとうございます。
|
110
|
+
|
111
|
+
当初私が作ってみたいと思った状況は
|
112
|
+
|
113
|
+
```javascript
|
114
|
+
|
115
|
+
class Aa extends Date{
|
116
|
+
|
117
|
+
constructor(...arg){
|
118
|
+
|
119
|
+
super(...arg);
|
120
|
+
|
121
|
+
console.log("アベシ");
|
122
|
+
|
123
|
+
}
|
124
|
+
|
125
|
+
};
|
126
|
+
|
127
|
+
Date = Aa;
|
128
|
+
|
129
|
+
new Date()
|
130
|
+
|
131
|
+
// アベシ
|
132
|
+
|
133
|
+
// 22:27:02.908 Wed Jun 19 2019 22:27:02 GMT+0900 (日本標準時)
|
134
|
+
|
135
|
+
```
|
136
|
+
|
137
|
+
で作ることが出来ました。
|
138
|
+
|
139
|
+
しかし未だ
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
```javascript
|
144
|
+
|
145
|
+
var itti = Date.prototype.constructor
|
146
|
+
|
147
|
+
var aaa = function(...args){
|
148
|
+
|
149
|
+
itti(...args);
|
150
|
+
|
151
|
+
console.log('abesi');
|
152
|
+
|
153
|
+
}
|
154
|
+
|
155
|
+
Date.prototype.constructor = aaa;
|
156
|
+
|
157
|
+
```
|
158
|
+
|
159
|
+
を行ってから
|
160
|
+
|
161
|
+
```javascript
|
162
|
+
|
163
|
+
new Date()
|
164
|
+
|
165
|
+
```
|
166
|
+
|
167
|
+
を行うとabesiと出てこない事の**理由がわかりません。**
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
また、私はプログラムについて何か仕事をしているわけでもなんでもなく、
|
174
|
+
|
175
|
+
ただの好奇心からの質問です。混乱させてしまいすみません。
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
仕事で行う人がいたらかなり危険だとも思いますので、
|
180
|
+
|
181
|
+
もしこの質問の最上に注意を書かせていただきました。
|