[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/21 06:30 / Filesize : 433 KB / Number-of Response : 1011
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

+ JavaScript の質問用スレッド vol.122 +



571 名前:デフォルトの名無しさん (ワッチョイ 8b5b-i5Qz) mailto:sage [2016/12/22(木) 20:26:42.36 ID:tlGoJkkG0.net]
話を戻す。今回の例で言うと、540は分かっている感じだが、542,543はエアプ。(と言われても仕方ないレベル)
542は話が余計に複雑になっている。
543と>>540は言っていることは同じなのだが、質問者は別物だと思っているらしい。
ただ、方向性が明らかに間違っている回答には「間違っている」だけで済ますべきで、コードを書いては駄目だ。
結果、その初心者は543を有り難がってしまっている。

質問者は「apply使ってる俺カッケー」「prototypeいじってる俺カッケー」な訳だが、これ自体が間違い。
ただ、このことを理解出来てない馬鹿が多いのもJavaScriptの特徴だ。
しかしこの嘘に流されているようでは上達しない。

この場合、普通は関数オーバーロードを行う。
要求: obj.print.apply(obj, args); とobjを2回書くのが面倒
質問者: obj.print.apply(args); と書きたい
>>542: obj.my_apply("print", args);
>>543: obj.print.myApply(args);
関数オーバーロード: obj.print(args);
どう見てもオーバーロードが一番簡単だろ。

オーバーロード自体はC++/C#/Javaでは簡単で、
今ある obj.print(String,String) に加えて、 obj.print(Array) を定義すればいいだけ。
ただしJavaScriptにはオーバーロードは無く、そのままだと上書きされてしまうので、
関数名を変えるか、(結果的にラップ関数になることが多い)
自前でやるか。自前でやる場合は道具は揃っていて、>>555に書いたとおり。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<433KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef