Kanasan.JS JavaScript第5版読書会#3 行ってきた
Kanasan.JS JavaScript第5版読書会#3 があったので行ってきた。
前夜は大阪でも雪が積もり、この日も晴れたものの寒い(;_;
この寒い中、30人も集まりましたよ。
自己紹介を聞いていたら、東京から来た人3名、名古屋や三重県から来た人3名もいたよ!
今日も通称サイ本の輪読。
当日の勉強会の内容を書いてみる。
【1】applyとcallをどう覚えればいい?
applyもcallも、関数呼び出しをあるオブジェクトのメソッドのように扱うこと。
f.call(o, 1, 2) は下記と同じ。
o.m = f;
o.m(1, 2);
delete o.m;
applyとcallの違いは、Ujihisa君がLispで書いた説明が分かりやすかった。
(apply f a b c '(d))
(call f '(a b c d))
つまり、applyは引数が配列、callは引数の羅列。
yharaさんのAnswerが端的ズバリ。
Schemeを知っていればapplyは簡単.Rubyを知っていればcallは簡単.
applyもcallも、関数をオブジェクトと見なせる点がJavaと異なる。
また、カリー化の話もあった。
他にcalleeの話題もあった。
【2】関数の引数に関数をセットできること~スクリプト言語の最大の特徴
Array.sort()の話。
引数に、ソートしたいロジックを無名関数にして入れたら、ソートできる。
これは、元々Perlから派生した手法だと思う。
ブロックをうまく利用したやり方。
JavaScriptの場合、変数も関数もオブジェクトみたいなものだから、関数をプロパティへセットすることも可能。
Javaならば、無名関数ではなく、メソッドだけのクラスを作り、そのクラスを引数にセットするやり方しかない。
Javaの方が冗長。
RubyはPerl、JavaScriptと同じ。
あと驚いたのが、JavaScriptはオーバーロードできない。
たしかに、JavaScriptは、引数の型がないし、引数の数も見ないから、やりようがないのだが。
次回は、本命のプロトタイプベースのオブジェクト指向のお話。
面白くなってきた(^o^)丿
| 固定リンク
「コミュニティ」カテゴリの記事
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- 『世界一流エンジニアの思考法』が学べる環境を手に入れてかつ継続する方法の感想 #devboost(2023.12.10)
- 第25回東京Redmine勉強会の感想 #redminet(2023.11.05)
- パターンカタログよりもモンスターカタログの方が面白いね #jasstkansai(2023.06.24)
- デブサミ2023の感想(2023.02.11)
コメント