任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
上下前次1-新
187: 2013/03/22(金)07:29 AAS
実際にコード例を示さない奴が偉そうだなw
188(1): 2013/03/22(金)07:39 AAS
>>186
俺のレスをちゃんと読んでるか?
maxLengthをプライベート変数にし、と俺は言ったぞ?
189(1): 2013/03/22(金)07:55 AAS
>>188
>>180はmaxLengthをプライベート変数(=val)にしてるだろ?
少し日本語不自由じゃないの?具体的なコード書けば勘違いされないのに
190(1): 忍法帖【Lv=40,xxxPT】(3+3:5) 2013/03/22(金)07:56 AAS
さすがに今時全部x.setMaxLength(100)みたいにしろとかありえないんでseal()が導入された
191(2): 2013/03/22(金)08:04 AAS
>>189
x = {var maxLength;}
>>190
俺の感覚だと、sealしたインスタンスを戻すFactoryメソッドを定義して、それを使うのを
ルール化するというほうがもっとあり得ないんだけど、最近じゃseal使うのが流行ってたりするの?
192(1): 2013/03/22(金)08:05 AAS
>>191
>x = {var maxLength;}
文法エラーです
193(1): 2013/03/22(金)08:19 AAS
>>192
それは悪かった。今スマホなんで完全なコードを書くのが難しい。
var x = (function() {var maxLength;})();が完全なコードかな。
194(1): 2013/03/22(金)08:29 AAS
あと、seal()方式には重大な欠点がもうひとつある。
それは、x内部のtypoを防げないってこと。
195(1): 忍法帖【Lv=40,xxxPT】(2+3:5) 2013/03/22(金)08:30 AAS
>>191
インスタンス生成はフレームワークが提供するのを使うことも多いかな
seal自体は流行ってはいないんじゃないの?ES5サポートしてないブラウザもあるし
でもここは任天堂がこれから提供する独自環境の話をするスレだから、
strict mode前提でsealなんかのES5の機能を積極的に使っていけるんじゃないかなと思ってる
196(2): 2013/03/22(金)08:40 AAS
>>193
>var x = (function() {var maxLength;})();
意味がわからない。このコードじゃxに入るのはundefined
あんたがやりたいのはこんな感じのことじゃないのか?
var x={maxLength:0,
setMaxLength:function(v){this.maxLength=v},
getMaxLength:function(){return this.maxLength}};
197: 2013/03/22(金)08:41 AAS
>>195
なるほど、そういうことか。了解。
198: 2013/03/22(金)08:42 AAS
>>196
悪いけど、昼休みまで待ってくれ。
199: 2013/03/22(金)08:44 AAS
>>194
seal()方式だとx内部にどんなやばいtypoが発生するの?
200(1): 2013/03/22(金)10:23 AAS
なんか基礎的な知識がなくて回り道しそうだから
お前らに最低限の知識を与えておこう
var hoge = (function() {
var private_variable;
function private_function() {
}
return {
public_function: private_function, // プライベート関数をパブリック関数として公開
}
}());
hoge.public_function();
201: 2013/03/22(金)11:03 AAS
今やJavaScriptはここまで来た
外部リンク:gigazine.net
202: 2013/03/22(金)11:10 AAS
OdinMonkeyっておぢんモンキーでいいの?
203(4): 2013/03/22(金)11:37 AA×
>>200>>196

204(2): 2013/03/22(金)11:38 AA×

205: 2013/03/22(金)11:54 AAS
それでは、
obj.setMaxLength(1) を
obj.MaxLength = 1 と
間違えてしまうことを防げない。
206(1): 2013/03/22(金)11:55 AAS
>>203
グローバル変数に隠蔽とは斬新だなw
207: 2013/03/22(金)11:59 AAS
JavaScriptにグローバル変数は存在しない。
208(1): 2013/03/22(金)12:03 AAS
>>206
実際のプロダクトコードでは、複数階層の名前空間に入れるけどね。
209(1): 2013/03/22(金)12:08 AAS
>>208
ためしに
var y = new Foo();
y.setMaxLength(200);
x.getMaxLength();
ってやってみたら?
210(1): 2013/03/22(金)12:21 AAS
>>209
どうなった?
211: 2013/03/22(金)12:40 AAS
>>210
あぁ、203に合わせると最後は
console.log(x.getMaxLength());
か
とりあえずやってみてよ?
212: 2013/03/22(金)13:16 AAS
基本的にJavaScriptでは「プライベート変数」はあきらめたほうがいいよ。
newも使わない方がいい。
男なら、publicなプロパティだね。
で、結局typoの問題は解決できないけど、それがJavaScriptってもんだ。
嫌ならTypeScriptがいいんじゃね(使ったことないから知らんけど)。
213: 2013/03/22(金)13:25 AAS
そもそもタイポと戦えないような奴はプログラマになっちゃいかん
214: 2013/03/22(金)13:26 AAS
そう、それがたとえ他人の書いたタイポであってもね
215: 2013/03/22(金)13:30 AAS
タイポは神様からの贈り物なんだよ
216(2): 2013/03/22(金)13:46 AAS
Javaをやってると奴隷とかドカタとか煽れるけど、スペルミスなんて、JavaやC#なら入力した
瞬間にエディタが教えてくれるに、それを人間が目で探すとか、動的型の言語のプログラマは
マシーンですか。
上下前次1-新書関写板覧索設栞歴
あと 671 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.037s