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^)丿
| 固定リンク
「コミュニティ」カテゴリの記事
- みんなのPython勉強会#65の感想~社会変革の鍵はIT技術者にあるのかもしれない(2021.01.14)
- 第73回 SEA関西プロセス分科会「モデルベースシステムズエンジニアリングの活用」の感想~モデルの検証を形式手法で自動テスト化する(2020.12.13)
- 増刷記念「ここはウォーターフォール市、アジャイル町」の裏話の感想~日本人はフレームワークが苦手でいつも振り回されている(2020.11.19)
- 第19回東京Redmine勉強会の感想 #redmineT(2020.11.14)
- 「製造業アジャイル、静岡での実践!」を聞いてRedmineはコミュニケーション管理ツールなのだと気づいた #devlove #静岡ギルド(2020.11.11)
コメント