任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
任天堂「今後C++は捨てJavaScriptで開発していく」 http://mevius.5ch.net/test/read.cgi/tech/1363752460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
185: デフォルトの名無しさん [sage] 2013/03/22(金) 07:19:44.91 >>179 >>178はこうか、>>180を意識してたんでちょっと間違った function hoge(x) { x.setMaxLength(100) } // 正 function hoge(x) { x.setMaxlength(100) } // 誤 http://mevius.5ch.net/test/read.cgi/tech/1363752460/185
186: デフォルトの名無しさん [sage] 2013/03/22(金) 07:25:16.82 >>180-181は実際に動作することを確認済み いまどきjavascriptのsetter/getterって言ったら>>180だろ http://mevius.5ch.net/test/read.cgi/tech/1363752460/186
187: デフォルトの名無しさん [sage] 2013/03/22(金) 07:29:28.53 実際にコード例を示さない奴が偉そうだなw http://mevius.5ch.net/test/read.cgi/tech/1363752460/187
188: デフォルトの名無しさん [sage] 2013/03/22(金) 07:39:45.43 >>186 俺のレスをちゃんと読んでるか? maxLengthをプライベート変数にし、と俺は言ったぞ? http://mevius.5ch.net/test/read.cgi/tech/1363752460/188
189: デフォルトの名無しさん [sage] 2013/03/22(金) 07:55:08.80 >>188 >>180はmaxLengthをプライベート変数(=val)にしてるだろ? 少し日本語不自由じゃないの?具体的なコード書けば勘違いされないのに http://mevius.5ch.net/test/read.cgi/tech/1363752460/189
190: 忍法帖【Lv=40,xxxPT】(3+3:5) [sage] 2013/03/22(金) 07:56:57.88 さすがに今時全部x.setMaxLength(100)みたいにしろとかありえないんでseal()が導入された http://mevius.5ch.net/test/read.cgi/tech/1363752460/190
191: デフォルトの名無しさん [sage] 2013/03/22(金) 08:04:07.38 >>189 x = {var maxLength;} >>190 俺の感覚だと、sealしたインスタンスを戻すFactoryメソッドを定義して、それを使うのを ルール化するというほうがもっとあり得ないんだけど、最近じゃseal使うのが流行ってたりするの? http://mevius.5ch.net/test/read.cgi/tech/1363752460/191
192: デフォルトの名無しさん [sage] 2013/03/22(金) 08:05:45.83 >>191 >x = {var maxLength;} 文法エラーです http://mevius.5ch.net/test/read.cgi/tech/1363752460/192
193: デフォルトの名無しさん [sage] 2013/03/22(金) 08:19:38.94 >>192 それは悪かった。今スマホなんで完全なコードを書くのが難しい。 var x = (function() {var maxLength;})();が完全なコードかな。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/193
194: デフォルトの名無しさん [sage] 2013/03/22(金) 08:29:00.54 あと、seal()方式には重大な欠点がもうひとつある。 それは、x内部のtypoを防げないってこと。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/194
195: 忍法帖【Lv=40,xxxPT】(2+3:5) [sage] 2013/03/22(金) 08:30:30.90 >>191 インスタンス生成はフレームワークが提供するのを使うことも多いかな seal自体は流行ってはいないんじゃないの?ES5サポートしてないブラウザもあるし でもここは任天堂がこれから提供する独自環境の話をするスレだから、 strict mode前提でsealなんかのES5の機能を積極的に使っていけるんじゃないかなと思ってる http://mevius.5ch.net/test/read.cgi/tech/1363752460/195
196: デフォルトの名無しさん [sage] 2013/03/22(金) 08:40:49.75 >>193 >var x = (function() {var maxLength;})(); 意味がわからない。このコードじゃxに入るのはundefined あんたがやりたいのはこんな感じのことじゃないのか? var x={maxLength:0, setMaxLength:function(v){this.maxLength=v}, getMaxLength:function(){return this.maxLength}}; http://mevius.5ch.net/test/read.cgi/tech/1363752460/196
197: デフォルトの名無しさん [sage] 2013/03/22(金) 08:41:57.22 >>195 なるほど、そういうことか。了解。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/197
198: デフォルトの名無しさん [sage] 2013/03/22(金) 08:42:48.67 >>196 悪いけど、昼休みまで待ってくれ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/198
199: デフォルトの名無しさん [sage] 2013/03/22(金) 08:44:05.27 >>194 seal()方式だとx内部にどんなやばいtypoが発生するの? http://mevius.5ch.net/test/read.cgi/tech/1363752460/199
200: デフォルトの名無しさん [sage] 2013/03/22(金) 10:23:09.92 なんか基礎的な知識がなくて回り道しそうだから お前らに最低限の知識を与えておこう var hoge = (function() { var private_variable; function private_function() { } return { public_function: private_function, // プライベート関数をパブリック関数として公開 } }()); hoge.public_function(); http://mevius.5ch.net/test/read.cgi/tech/1363752460/200
201: デフォルトの名無しさん [] 2013/03/22(金) 11:03:48.66 今やJavaScriptはここまで来た http://gigazine.net/news/20130322-firefox-asmjs/ http://mevius.5ch.net/test/read.cgi/tech/1363752460/201
202: デフォルトの名無しさん [sage] 2013/03/22(金) 11:10:02.18 OdinMonkeyっておぢんモンキーでいいの? http://mevius.5ch.net/test/read.cgi/tech/1363752460/202
203: デフォルトの名無しさん [sage] 2013/03/22(金) 11:37:19.10 >>200 ありがと。 >>196 それだと、maxLengthを隠蔽できてない。 newを使う場合はこう。 var Foo = function() {var maxLength;}; Foo.prototype.setMaxLength = function(val) {maxLength = val;} Foo.prototype.getMaxLength = function() {return maxLength;}; var x = new Foo(); console.log(x.maxLength); // => undefined x.setMaxLength(100); console.log(x.getMaxLength()); // => 100 console.log(x.maxLength); // => undefined x.maxLength = 200; // => can't change Foo's property console.log(x.getMaxLength()); // => 100 try { console.log(x.getMaxlength()); } catch (e) { console.log(e.message); } http://mevius.5ch.net/test/read.cgi/tech/1363752460/203
204: デフォルトの名無しさん [sage] 2013/03/22(金) 11:38:26.18 newを使わない場合はこう。 var x = {}; (function(obj) { var maxLength; function getMaxLength() { return maxLength; } function setMaxLength(val) { maxLength = val; } obj.getMaxLength = getMaxLength; obj.setMaxLength = setMaxLength; })(x); console.log(x.maxLength); // => undefined x.setMaxLength(100); console.log(x.getMaxLength()); // => 100 console.log(x.maxLength); // => undefined x.maxLength = 200; // => can't change Foo's property console.log(x.getMaxLength()); // => 100 try { console.log(x.getMaxlength()); } catch (e) { console.log(e.message); } http://mevius.5ch.net/test/read.cgi/tech/1363752460/204
205: デフォルトの名無しさん [sage] 2013/03/22(金) 11:54:34.47 それでは、 obj.setMaxLength(1) を obj.MaxLength = 1 と 間違えてしまうことを防げない。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/205
206: デフォルトの名無しさん [sage] 2013/03/22(金) 11:55:25.08 >>203 グローバル変数に隠蔽とは斬新だなw http://mevius.5ch.net/test/read.cgi/tech/1363752460/206
207: デフォルトの名無しさん [sage] 2013/03/22(金) 11:59:36.73 JavaScriptにグローバル変数は存在しない。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/207
208: デフォルトの名無しさん [sage] 2013/03/22(金) 12:03:10.04 >>206 実際のプロダクトコードでは、複数階層の名前空間に入れるけどね。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/208
209: デフォルトの名無しさん [sage] 2013/03/22(金) 12:08:07.49 >>208 ためしに var y = new Foo(); y.setMaxLength(200); x.getMaxLength(); ってやってみたら? http://mevius.5ch.net/test/read.cgi/tech/1363752460/209
210: デフォルトの名無しさん [sage] 2013/03/22(金) 12:21:19.07 >>209 どうなった? http://mevius.5ch.net/test/read.cgi/tech/1363752460/210
211: デフォルトの名無しさん [sage] 2013/03/22(金) 12:40:55.14 >>210 あぁ、203に合わせると最後は console.log(x.getMaxLength()); か とりあえずやってみてよ? http://mevius.5ch.net/test/read.cgi/tech/1363752460/211
212: デフォルトの名無しさん [sage] 2013/03/22(金) 13:16:53.40 基本的にJavaScriptでは「プライベート変数」はあきらめたほうがいいよ。 newも使わない方がいい。 男なら、publicなプロパティだね。 で、結局typoの問題は解決できないけど、それがJavaScriptってもんだ。 嫌ならTypeScriptがいいんじゃね(使ったことないから知らんけど)。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/212
213: デフォルトの名無しさん [sage] 2013/03/22(金) 13:25:00.70 そもそもタイポと戦えないような奴はプログラマになっちゃいかん http://mevius.5ch.net/test/read.cgi/tech/1363752460/213
214: デフォルトの名無しさん [sage] 2013/03/22(金) 13:26:27.37 そう、それがたとえ他人の書いたタイポであってもね http://mevius.5ch.net/test/read.cgi/tech/1363752460/214
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 673 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s