質問編集履歴

2

一部文言追加修正

2018/01/02 05:27

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -88,6 +88,8 @@
88
88
 
89
89
  「複数の関数 ( メソッド? ) で一つのオブジェクトを使いたい」という目的に近いです。
90
90
 
91
+
92
+
91
93
  ただ、必要なメソッドを必要な分だけ、そのメソッド内でオブジェクト化したいのです。
92
94
 
93
95
 
@@ -206,13 +208,19 @@
206
208
 
207
209
  同様に、methodCもメソッドA1が使えてしまいます。
208
210
 
211
+
212
+
209
- (もっと言えば何だか`$(function(){...});`も分割できい?って思ってしまいます……)
213
+ 今回はメソッドが3つの場合を挙げましたが、これが5個、10個……になってくると、
214
+
215
+ どこで何を使っているのかがかなり分かりにくくなってしまうので、
216
+
217
+ このコードの書き方は問題ありそうだなあ……と思えてきたため、質問いたしました。
210
218
 
211
219
 
212
220
 
213
221
  それぞれのメソッドで、必要な分だけオブジェクト化して使用したいと考えています。
214
222
 
215
- そこで、構造的に、どのように記述すればいいのかが分かりません(´・ω・`)
223
+ しかし、構造的に、どのように記述すればいいのかが分かりません(´・ω・`)
216
224
 
217
225
 
218
226
 

1

質問の意図を明瞭化、質問内容を大幅加筆

2018/01/02 05:26

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -71,3 +71,151 @@
71
71
  かなり漠然とした質問ではありますが、どのように書けばオブジェクト指向っぽくmethodCで値を取得できますか?
72
72
 
73
73
  ご教示のほど、よろしくお願いいたします。
74
+
75
+
76
+
77
+ ---
78
+
79
+ 追記:
80
+
81
+ 迅速な回答ありがとうございます。
82
+
83
+ 回答欄でもご指摘をいただきましたが、質問内容が漠然としすぎでしたので、追記します。
84
+
85
+
86
+
87
+ 自身で上手く言語化できませんでしたが、言葉をお借りするなら、
88
+
89
+ 「複数の関数 ( メソッド? ) で一つのオブジェクトを使いたい」という目的に近いです。
90
+
91
+ ただ、必要なメソッドを必要な分だけ、そのメソッド内でオブジェクト化したいのです。
92
+
93
+
94
+
95
+ 現状のコードは、下記のようになっています。
96
+
97
+ ```JavaScript
98
+
99
+ $(function(){
100
+
101
+
102
+
103
+ var a = new methodA1();
104
+
105
+ var b = new methodA2();
106
+
107
+ var c = new methodA3();
108
+
109
+
110
+
111
+ methodB();
112
+
113
+ methodC();
114
+
115
+ methodD();
116
+
117
+
118
+
119
+ // numの変数を保持したり取得したりするメソッド
120
+
121
+ function methodA1() {
122
+
123
+ var _num;
124
+
125
+ this.setNumber = function(num) { _num = num; }
126
+
127
+ this.getNumber = function() { return _num; }
128
+
129
+ }
130
+
131
+
132
+
133
+ // fooの変数を保持したり取得したりするメソッド
134
+
135
+ function methodA2() {
136
+
137
+ var _foo;
138
+
139
+ this.setFoo = function(foo) { _foo= foo; }
140
+
141
+ this.getFoo = function() { return _foo; }
142
+
143
+ }
144
+
145
+
146
+
147
+ // barの変数を保持したり取得したりするメソッド
148
+
149
+ function methodA3() {
150
+
151
+ var _bar;
152
+
153
+ this.setBar = function(bar) { _bar = bar; }
154
+
155
+ this.getBar = function() { return _bar; }
156
+
157
+ }
158
+
159
+
160
+
161
+ // いろんな値を設定する[ここではメソッドA1、メソッドA2だけ使いたい]
162
+
163
+ function methodB() {
164
+
165
+ a.setNumber(100);
166
+
167
+ b.setFoo("Foo");
168
+
169
+ }
170
+
171
+
172
+
173
+ // いろんな値を設定する[ここではメソッドA2、メソッドA3だけ使いたい]
174
+
175
+ function methodC() {
176
+
177
+ b.setFoo("Foo");
178
+
179
+ c.setBar("Bar");
180
+
181
+ }
182
+
183
+
184
+
185
+ // methodA1~A3の処理を行った後、変更されたnumの値を取得したい
186
+
187
+ function methodD() {
188
+
189
+ console.log(a.getNumber()); // 出力:100
190
+
191
+ console.log(b.getFoo()); // 出力:Foo
192
+
193
+ console.log(c.getBar()); // 出力:Bar
194
+
195
+ }
196
+
197
+ });
198
+
199
+ ```
200
+
201
+
202
+
203
+ しかし、このコードだと、methodBはメソッドA1、メソッドA2しか使わないにも関わらず、
204
+
205
+ メソッドA3も使おうと思えば使えてしまいます。
206
+
207
+ 同様に、methodCもメソッドA1が使えてしまいます。
208
+
209
+ (もっと言えば、何だか`$(function(){...});`も分割できない?って思ってしまいます……)
210
+
211
+
212
+
213
+ それぞれのメソッドで、必要な分だけオブジェクト化して使用したいと考えています。
214
+
215
+ そこで、構造的に、どのように記述すればいいのかが分かりません(´・ω・`)
216
+
217
+
218
+
219
+ 今度は、そこそこ質問の意図が明確になったような気がします……が、曖昧な箇所等あれば随時追記します。
220
+
221
+ ご教示のほど、よろしくお願いいたします。