任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
任天堂「今後C++は捨てJavaScriptで開発していく」 http://mevius.5ch.net/test/read.cgi/tech/1363752460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
176: デフォルトの名無しさん [sage] 2013/03/22(金) 06:52:37.46 >>172 setterにすると>>49のコードが具体的にどう変わるか書いてみてくれない? http://mevius.5ch.net/test/read.cgi/tech/1363752460/176
177: デフォルトの名無しさん [sage] 2013/03/22(金) 06:54:19.46 >>176 書いたじゃん。 理解できないのか? http://mevius.5ch.net/test/read.cgi/tech/1363752460/177
178: デフォルトの名無しさん [sage] 2013/03/22(金) 07:01:29.20 >>177 function hoge(x) { x.setMaxLength() = 100; } // 正 function hoge(x) { x.setMaxlength() = 100; } // 誤 ってこと? http://mevius.5ch.net/test/read.cgi/tech/1363752460/178
179: デフォルトの名無しさん [sage] 2013/03/22(金) 07:06:04.93 178 悪いが、JavaScriptを知らない奴にまで説明する優しさは持ってない。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/179
180: デフォルトの名無しさん [sage] 2013/03/22(金) 07:08:00.09 >>179 いやおれは普通にこういうことだとおもったんだが x = { val:0, get maxLength() {return this.val}, set maxLength(v) {this.val = v}} function hoge(x) { x.maxLength = 100; } // 正 function hoge(x) { x.maxlength = 100; } // 誤 x.maxlengthに間違ったら意味無いよね? http://mevius.5ch.net/test/read.cgi/tech/1363752460/180
181: デフォルトの名無しさん [sage] 2013/03/22(金) 07:13:44.71 ああ、xを実引数にしてhoge()を呼び出すと思ってくれ http://mevius.5ch.net/test/read.cgi/tech/1363752460/181
182: デフォルトの名無しさん [sage] 2013/03/22(金) 07:16:02.22 >>180 俺の話からそんなコードを想像したのなら、そりゃ話は噛み合わないな。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/182
183: デフォルトの名無しさん [sage] 2013/03/22(金) 07:18:24.28 念のため言っとくが(めんどくさいから、これが最後だよ)、その「正」は 正しくないよ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/183
184: デフォルトの名無しさん [sage] 2013/03/22(金) 07:18:56.96 コード書けないアホが無理するから... http://mevius.5ch.net/test/read.cgi/tech/1363752460/184
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 682 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s