- 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に書いたとおり。
|

|