teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

指摘を参考に修正

2020/06/23 04:35

投稿

miyabi_pudding
miyabi_pudding

スコア9559

answer CHANGED
@@ -5,39 +5,32 @@
5
5
  ブラウザでなくてもいけるようにしました。
6
6
 
7
7
  ```javascript
8
- if (typeof window != 'object') {
8
+ {
9
- var window = this;
9
+ let _n = 1;
10
- }
11
-
12
10
  Object.defineProperty(
13
- window,
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
- throw new RangeError('The value to asign must be number between 1 and 6.');
17
+ if (isNaN(newVal) || newVal < 1 || newVal > 6) throw new RangeError('The value to asign must be number between 1 and 6.');
30
- } else {
18
+
31
- _n = newVal;
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

指摘を受けて、コード改良

2020/06/23 04:35

投稿

miyabi_pudding
miyabi_pudding

スコア9559

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 Error('Number size error !');
29
+ throw new RangeError('The value to asign must be number between 1 and 6.');
24
30
  } else {
25
31
  _n = newVal;
26
32
  }