[過去ログ] + JavaScript の質問用スレッド vol.84 + (1001レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
420(4): 2011/03/10(木)21:36 ID:eJR+lZ3V(1/5) AAS
javascriptのプライベートメソッドはどのように定義するべきなのでしょうか。
検索してみたところ、以下の方法が最も良いのではないかと思うのですが、もしより良い手段がありましたら教えてください。
var MyClass = function(){};
MyClass.prototype = (function(){
var privateMethod = function(){
//プライベートコード
};
return {
publicMethod : function(){
privateMethod.call(this);
省3
426: 2011/03/10(木)22:06 ID:eJR+lZ3V(2/5) AAS
>>424
ということは、javascriptでプライベートメソッドをエミュレートするときの慣習というか、常識となっている方法は名前規約なのですね。
回答ありがとうございました。
429(1): 2011/03/10(木)22:15 ID:eJR+lZ3V(3/5) AAS
>>425
リロードせずに見落としていました。こういうことですよね?
function MyClass (){
var privateMethod = function(){
alert('hoge');
};
this.publicMethod = function () {privateMethod.call(this);}
};
その方法はたしかに読みやすくプログラミングしやすいと思うのですが、そのメソッドはインスタンスごとに生成されてしまわないでしょうか。
メモリの観点からみるとprototypeを使って>>420よりも読みやすい方法があるといいのですが……。
432: 2011/03/10(木)23:17 ID:eJR+lZ3V(4/5) AAS
>>431
なるほど!Callオブジェクトの中に閉じ込めるんですね!
そんな使い方ができるなんて……とても勉強になります。
ところで、そのコードで1点わからないところがあります。
MyClassで自身を返している(return this)のはなぜなのでしょうか?
削ってみても動くようなのですが、どんな意図があるのでしょうか。
435: 2011/03/10(木)23:39 ID:eJR+lZ3V(5/5) AAS
>>433
言いたいことはわかります。
jQueryによくある感じで、ドットでメソッドをつなげていくことを意識したのでしょうか。
ともかく回答してくださった方々、どうもありがとうございました!
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.136s*