回答編集履歴

1

修正

2018/01/18 00:51

投稿

yambejp
yambejp

スコア114769

test CHANGED
@@ -10,11 +10,13 @@
10
10
 
11
11
  ```javascript
12
12
 
13
- function Hoge(){}
13
+ function Hoge(){this.c='c1';}
14
14
 
15
- Hoge.prototype.a='a';
15
+ Hoge.prototype.a='a1';
16
16
 
17
17
  var obj1 = new Hoge();
18
+
19
+ Object.defineProperty(obj1, 'b', {value: 'b1'});
18
20
 
19
21
  for(var i in obj1){
20
22
 
@@ -26,7 +28,11 @@
26
28
 
27
29
  var obj2 = new Hoge();
28
30
 
29
- Object.defineProperty(obj2, 'a', {enumerable: true});
31
+ Object.defineProperty(obj2, 'a', {value: 'a2'});
32
+
33
+ Object.defineProperty(obj2, 'b', {value: 'b2'});
34
+
35
+ Object.defineProperty(obj2, 'c', {value: 'c2'});
30
36
 
31
37
  for(var i in obj2){
32
38
 
@@ -38,7 +44,11 @@
38
44
 
39
45
  var obj3 = new Hoge();
40
46
 
41
- Object.defineProperty(obj3, 'a', {value: 1,enumerable: true});
47
+ Object.defineProperty(obj3, 'a', {enumerable: true});
48
+
49
+ Object.defineProperty(obj3, 'b', {enumerable: true});
50
+
51
+ Object.defineProperty(obj3, 'c', {enumerable: true});
42
52
 
43
53
  for(var i in obj3){
44
54
 
@@ -48,12 +58,26 @@
48
58
 
49
59
 
50
60
 
61
+ var obj4 = new Hoge();
62
+
63
+ Object.defineProperty(obj4, 'a', {value: 'a4',enumerable: true});
64
+
65
+ Object.defineProperty(obj4, 'b', {value: 'b4',enumerable: true});
66
+
67
+ Object.defineProperty(obj4, 'c', {value: 'c4',enumerable: true});
68
+
69
+ for(var i in obj4){
70
+
71
+ console.log("obj4:"+i+":"+obj4[i]);
72
+
73
+ }
74
+
51
75
  ```
76
+
77
+ ※一部サンプルの詳細を追記
52
78
 
53
79
 
54
80
 
55
- 仕様上どちらかが間違っている可能性もありますし
81
+ 仕様上どちらかが間違っている(バグ)可能性もありますし
56
82
 
57
- どちらでも問題ないような気もします。
83
+ どちらでも解釈上問題ないような気もします。
58
-
59
- 運用上はobj3のようにきちんとプロパティの属性を指定してあげればことたります