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^)丿
| 固定リンク
「コミュニティ」カテゴリの記事
- 第22回東京Redmine勉強会の感想 #redmineT(2022.05.29)
- 『ものづくりの数学』の感想 #もの数(2022.04.10)
- RedmineJapan vol.2が開催されました #RedmineJapan(2022.02.25)
- 第21回東京Redmine勉強会の感想 #redmineT ~Redmineは業務も組織も包み込む柔軟性がある(2021.11.28)
- なぜソフトウエア後進国の日本でRubyは成功したのか?~ソフトウェアの成功の秘訣はコミュニティ、そしてコンウェイの法則にある(2021.11.09)
コメント