回答編集履歴
2
指摘を参考に修正
answer
CHANGED
@@ -5,39 +5,32 @@
|
|
5
5
|
ブラウザでなくてもいけるようにしました。
|
6
6
|
|
7
7
|
```javascript
|
8
|
-
|
8
|
+
{
|
9
|
-
|
9
|
+
let _n = 1;
|
10
|
-
}
|
11
|
-
|
12
10
|
Object.defineProperty(
|
13
|
-
|
11
|
+
this,
|
14
|
-
'_n',
|
15
|
-
{
|
16
|
-
value: 1,
|
17
|
-
writable: true
|
18
|
-
}
|
19
|
-
);
|
20
|
-
|
21
|
-
Object.defineProperty(
|
22
|
-
window,
|
23
12
|
'n',
|
24
13
|
{
|
25
14
|
get(){return _n;},
|
26
15
|
set(newVal){
|
27
16
|
newVal = Number(newVal);
|
28
|
-
if (isNaN(newVal) || newVal < 1 || newVal > 6) {
|
29
|
-
|
17
|
+
if (isNaN(newVal) || newVal < 1 || newVal > 6) throw new RangeError('The value to asign must be number between 1 and 6.');
|
30
|
-
|
18
|
+
|
31
|
-
|
19
|
+
_n = newVal;
|
32
|
-
}
|
33
20
|
},
|
34
21
|
configurable: true,
|
35
22
|
enumerable: true
|
36
23
|
}
|
37
24
|
);
|
25
|
+
}
|
38
26
|
|
39
27
|
n = 2;
|
40
28
|
n = 7; // エラー
|
41
29
|
|
42
30
|
console.log(n);
|
43
|
-
```
|
31
|
+
```
|
32
|
+
|
33
|
+
think49さん >
|
34
|
+
度々のご指摘、大変にありがとうございます。
|
35
|
+
自分自身、大変に勉強になりました。
|
36
|
+
もっと自身も精進します 苦笑
|
1
指摘を受けて、コード改良
answer
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
むりくりやってみました。
|
2
2
|
一応エラー吐きます。
|
3
3
|
|
4
|
-
ただし、ブラウザ環境限定かと。
|
4
|
+
~~ただし、ブラウザ環境限定かと。~~
|
5
|
+
ブラウザでなくてもいけるようにしました。
|
5
6
|
|
6
7
|
```javascript
|
8
|
+
if (typeof window != 'object') {
|
9
|
+
var window = this;
|
10
|
+
}
|
11
|
+
|
7
12
|
Object.defineProperty(
|
8
13
|
window,
|
9
14
|
'_n',
|
@@ -19,8 +24,9 @@
|
|
19
24
|
{
|
20
25
|
get(){return _n;},
|
21
26
|
set(newVal){
|
27
|
+
newVal = Number(newVal);
|
22
|
-
if (newVal < 1 || newVal > 6) {
|
28
|
+
if (isNaN(newVal) || newVal < 1 || newVal > 6) {
|
23
|
-
throw new
|
29
|
+
throw new RangeError('The value to asign must be number between 1 and 6.');
|
24
30
|
} else {
|
25
31
|
_n = newVal;
|
26
32
|
}
|