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

質問編集履歴

9

脱字

2016/10/05 07:39

投稿

退会済みユーザー
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)=>this.instance_a.a = value.a}
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

コードを変更

2016/10/05 07:39

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -12,7 +12,7 @@
12
12
  }
13
13
 
14
14
  function B(){
15
- this.instance_a = new A(1,1,1);
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.instance_a[val] = value[val]
44
+ this.attr[val] = value[val]
45
45
  }
46
46
  }
47
47
  })

7

脱字

2016/10/05 07:27

投稿

退会済みユーザー
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

誤字

2016/10/05 07:18

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  お世話になっております。
2
2
 
3
3
  ```javascript
4
- fucntion A(a,b,c){
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
- fucntion B(){
14
+ function B(){
15
15
  this.instance_a = new A(1,1,1);
16
16
  }
17
17
 

5

追記

2016/10/05 07:17

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -52,8 +52,10 @@
52
52
 
53
53
  なければ全部列挙すれば済むのですが,もしそれより簡単にできる方法をご存知の方や思いつく方がいらっしゃれば教えていただければと思います。宜しくお願いします。
54
54
 
55
- 追記 for文で回したい理由があって実はpropertyのsetter経由で代入を行うと,viewの変更も同時に行うように設定したくて,
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

補足

2016/10/05 06:52

投稿

退会済みユーザー
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

タイトルの整合性を修正

2016/10/05 06:50

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Object.definePropertiesで定義されたproperty取得したい
1
+ Object.definePropertiesでクラス名に定義されたpropertyを自動で設定したい
body CHANGED
File without changes

2

誤り訂正

2016/10/05 05:58

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -27,19 +27,26 @@
27
27
  などとしてObjectを渡すのではなく,
28
28
  ```javascript
29
29
  Object.defineProperties(B.prototype,
30
- {a:{set:(value)=>this.instance_a.a = value.a}
30
+ {instance_a:{set:(value)=>this.instance_a.a = value.a}
31
31
  }
32
- b.a = a.a;
32
+ b.instance_a = a;
33
33
  ```
34
- としてプロパティに設定したクラスのそれぞれのpropertyに直接
34
+ としてプロパティに設定したクラスのそれぞれのpropertyに参照渡しではなく
35
- アクセスできるようにしたいです。
35
+ コピー代入でアクセスできるようにしたいです。
36
+
36
37
  上記のコードでは一つ一つのプロパティに同じように列挙すればできますが,
37
38
  プロパティの数が多いので,
39
+
38
- for(var val of Object.getOwnPropertyNames( A.prototype )){
40
+ ```javascript
39
41
  Object.defineProperties(B.prototype,
42
+ {instance_a:{set:(value)=>
43
+ for(var val of Object.getOwnPropertyNames( A.prototype )){
40
- {a:{set:(value)=>this.instance_a[val] = value[val]}
44
+ this.instance_a[val] = value[val]
41
- }
45
+ }
42
- }
46
+ }
47
+ })
48
+ ```
49
+
43
50
  などとしたいのですが
44
51
  ,余計なsomeActionなどのインスタンスメソッドやconstructorなどが一緒に取得されてしまいます。これらを排除して,propertyを得るようなメソッドはありますか?
45
52
  なければ全部列挙すれば済むのですが,もしそれより簡単にできる方法をご存知の方や思いつく方がいらっしゃれば教えていただければと思います。宜しくお願いします。

1

脱字

2016/10/05 05:50

投稿

退会済みユーザー
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
  アクセスできるようにしたいです。