任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
任天堂「今後C++は捨てJavaScriptで開発していく」 http://mevius.5ch.net/test/read.cgi/tech/1363752460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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
215: デフォルトの名無しさん [sage] 2013/03/22(金) 13:30:07.16 タイポは神様からの贈り物なんだよ http://mevius.5ch.net/test/read.cgi/tech/1363752460/215
216: デフォルトの名無しさん [sage] 2013/03/22(金) 13:46:05.31 Javaをやってると奴隷とかドカタとか煽れるけど、スペルミスなんて、JavaやC#なら入力した 瞬間にエディタが教えてくれるに、それを人間が目で探すとか、動的型の言語のプログラマは マシーンですか。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/216
217: デフォルトの名無しさん [sage] 2013/03/22(金) 13:59:19.86 JSに限った話じゃないけどテストを書けば問題ないってのは机上の空論だな >>203もテスト(らしきもの)を書いているけど、結局のところなんのチェックも出来てない訳だし (203はそろそろ自分の間違いに気がついただろうか?) http://mevius.5ch.net/test/read.cgi/tech/1363752460/217
218: デフォルトの名無しさん [sage] 2013/03/22(金) 14:25:59.22 >>216 チェックツールあるだろw http://mevius.5ch.net/test/read.cgi/tech/1363752460/218
219: デフォルトの名無しさん [sage] 2013/03/22(金) 15:53:13.12 JSか http://mevius.5ch.net/test/read.cgi/tech/1363752460/219
220: デフォルトの名無しさん [sage] 2013/03/22(金) 15:54:14.44 >>203 だからこれは何なんだよw >var Foo = function() {var maxLength;}; >Foo.prototype.setMaxLength = function(val) {maxLength = val;} >Foo.prototype.getMaxLength = function() {return maxLength;}; 意味がわからんぞw 偉そうなこというまえに基礎からやりなおしてこいよw http://mevius.5ch.net/test/read.cgi/tech/1363752460/220
221: デフォルトの名無しさん [sage] 2013/03/22(金) 15:57:38.83 >>216 打ってる最中に画面見てないのか? 大文字小文字も規約決めてるだろうし… http://mevius.5ch.net/test/read.cgi/tech/1363752460/221
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 666 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s