質問編集履歴
9
脱字
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
などとしてObjectを渡すのではなく,
|
28
28
|
```javascript
|
29
29
|
Object.defineProperties(B.prototype,
|
30
|
-
{instance_a:{set:(value)
|
30
|
+
{instance_a:{set:function(value){this.instance_a.a = value.a}}
|
31
31
|
})
|
32
32
|
b.instance_a = a;
|
33
33
|
```
|
@@ -39,7 +39,7 @@
|
|
39
39
|
|
40
40
|
```javascript
|
41
41
|
Object.defineProperties(B.prototype,
|
42
|
-
{instance_a:{set:(value)
|
42
|
+
{instance_a:{set:function(value){
|
43
43
|
for(var val of Object.getOwnPropertyNames( A.prototype )){
|
44
44
|
this.attr[val] = value[val]
|
45
45
|
}
|
8
コードを変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
}
|
13
13
|
|
14
14
|
function B(){
|
15
|
-
this.
|
15
|
+
this.attr = new A(1,1,1);
|
16
16
|
}
|
17
17
|
|
18
18
|
```
|
@@ -41,7 +41,7 @@
|
|
41
41
|
Object.defineProperties(B.prototype,
|
42
42
|
{instance_a:{set:(value)=>
|
43
43
|
for(var val of Object.getOwnPropertyNames( A.prototype )){
|
44
|
-
this.
|
44
|
+
this.attr[val] = value[val]
|
45
45
|
}
|
46
46
|
}
|
47
47
|
})
|
7
脱字
title
CHANGED
File without changes
|
body
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
```javascript
|
29
29
|
Object.defineProperties(B.prototype,
|
30
30
|
{instance_a:{set:(value)=>this.instance_a.a = value.a}
|
31
|
-
}
|
31
|
+
})
|
32
32
|
b.instance_a = a;
|
33
33
|
```
|
34
34
|
としてプロパティに設定したクラスのそれぞれのpropertyに参照渡しではなく
|
6
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
お世話になっております。
|
2
2
|
|
3
3
|
```javascript
|
4
|
-
|
4
|
+
function A(a,b,c){
|
5
5
|
this.a = a;
|
6
6
|
this.b = b;
|
7
7
|
this.c = c;
|
@@ -11,7 +11,7 @@
|
|
11
11
|
return;
|
12
12
|
}
|
13
13
|
|
14
|
-
|
14
|
+
function B(){
|
15
15
|
this.instance_a = new A(1,1,1);
|
16
16
|
}
|
17
17
|
|
5
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,8 +52,10 @@
|
|
52
52
|
|
53
53
|
なければ全部列挙すれば済むのですが,もしそれより簡単にできる方法をご存知の方や思いつく方がいらっしゃれば教えていただければと思います。宜しくお願いします。
|
54
54
|
|
55
|
-
追記
|
55
|
+
追記
|
56
56
|
|
57
|
+
for文で回したい理由があって実はpropertyのsetter経由で代入を行うと,viewの変更も同時に行うように設定したくて,
|
58
|
+
|
57
59
|
```javascript
|
58
60
|
properties = {};
|
59
61
|
for(var val of Object.getOwnPropertyNames( A.prototype )){
|
@@ -62,9 +64,9 @@
|
|
62
64
|
updateView(value);
|
63
65
|
}})(val)};
|
64
66
|
}
|
65
|
-
Object.defineProperties(B.prototype,properties
|
67
|
+
Object.defineProperties(B.prototype,properties)
|
66
68
|
|
67
69
|
```
|
68
70
|
|
69
71
|
としてvalueの条件分岐でViewをupdateするメソッドを作っています。
|
70
|
-
なのでObject.getOwnPropertyNames( A.prototype )から余計なpropertiesを弾く方法で実装したいと
|
72
|
+
なのでObject.getOwnPropertyNames( A.prototype )から余計なpropertiesを弾く方法で実装したいという経緯があります。
|
4
補足
title
CHANGED
File without changes
|
body
CHANGED
@@ -49,4 +49,22 @@
|
|
49
49
|
|
50
50
|
などとしたいのですが
|
51
51
|
,余計なsomeActionなどのインスタンスメソッドやconstructorなどが一緒に取得されてしまいます。これらを排除して,propertyを得るようなメソッドはありますか?
|
52
|
+
|
52
|
-
なければ全部列挙すれば済むのですが,もしそれより簡単にできる方法をご存知の方や思いつく方がいらっしゃれば教えていただければと思います。宜しくお願いします。
|
53
|
+
なければ全部列挙すれば済むのですが,もしそれより簡単にできる方法をご存知の方や思いつく方がいらっしゃれば教えていただければと思います。宜しくお願いします。
|
54
|
+
|
55
|
+
追記 for文で回したい理由があって実はpropertyのsetter経由で代入を行うと,viewの変更も同時に行うように設定したくて,
|
56
|
+
|
57
|
+
```javascript
|
58
|
+
properties = {};
|
59
|
+
for(var val of Object.getOwnPropertyNames( A.prototype )){
|
60
|
+
properties[val] = {set:((val)=>{(value)=>{
|
61
|
+
this.instance_a[val] = value;
|
62
|
+
updateView(value);
|
63
|
+
}})(val)};
|
64
|
+
}
|
65
|
+
Object.defineProperties(B.prototype,properties})
|
66
|
+
|
67
|
+
```
|
68
|
+
|
69
|
+
としてvalueの条件分岐でViewをupdateするメソッドを作っています。
|
70
|
+
なのでObject.getOwnPropertyNames( A.prototype )から余計なpropertiesを弾く方法で実装したいと思っています。
|
3
タイトルの整合性を修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Object.definePropertiesで定義されたproperty
|
1
|
+
Object.definePropertiesでクラス名に定義されたpropertyを自動で設定したい
|
body
CHANGED
File without changes
|
2
誤り訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,19 +27,26 @@
|
|
27
27
|
などとしてObjectを渡すのではなく,
|
28
28
|
```javascript
|
29
29
|
Object.defineProperties(B.prototype,
|
30
|
-
{
|
30
|
+
{instance_a:{set:(value)=>this.instance_a.a = value.a}
|
31
31
|
}
|
32
|
-
b.
|
32
|
+
b.instance_a = a;
|
33
33
|
```
|
34
|
-
としてプロパティに設定したクラスのそれぞれのpropertyに
|
34
|
+
としてプロパティに設定したクラスのそれぞれのpropertyに参照渡しではなく
|
35
|
-
アクセスできるようにしたいです。
|
35
|
+
コピー代入でアクセスできるようにしたいです。
|
36
|
+
|
36
37
|
上記のコードでは一つ一つのプロパティに同じように列挙すればできますが,
|
37
38
|
プロパティの数が多いので,
|
39
|
+
|
38
|
-
|
40
|
+
```javascript
|
39
41
|
Object.defineProperties(B.prototype,
|
42
|
+
{instance_a:{set:(value)=>
|
43
|
+
for(var val of Object.getOwnPropertyNames( A.prototype )){
|
40
|
-
|
44
|
+
this.instance_a[val] = value[val]
|
41
|
-
|
45
|
+
}
|
42
|
-
}
|
46
|
+
}
|
47
|
+
})
|
48
|
+
```
|
49
|
+
|
43
50
|
などとしたいのですが
|
44
51
|
,余計なsomeActionなどのインスタンスメソッドやconstructorなどが一緒に取得されてしまいます。これらを排除して,propertyを得るようなメソッドはありますか?
|
45
52
|
なければ全部列挙すれば済むのですが,もしそれより簡単にできる方法をご存知の方や思いつく方がいらっしゃれば教えていただければと思います。宜しくお願いします。
|
1
脱字
title
CHANGED
File without changes
|
body
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
Object.defineProperties(B.prototype,
|
30
30
|
{a:{set:(value)=>this.instance_a.a = value.a}
|
31
31
|
}
|
32
|
-
b.a = a;
|
32
|
+
b.a = a.a;
|
33
33
|
```
|
34
34
|
としてプロパティに設定したクラスのそれぞれのpropertyに直接
|
35
35
|
アクセスできるようにしたいです。
|