jQuery の記法 - ラムダ式を用いない場合 -
令和2年4月27日月曜日。腸内環境がよくない為か軟便が続いています。
一度パソコンの前に座ると、ちょっと便意を催したくらいでは動きたくなくて、我慢をしていたら少し漏らしてしまいました。
今年、46になります。お父さん、お母さん、ごめんなさい。
さて、jQuery を始めてみました。
初めは難しそうに感じていましたが、基本的な文法を覚えてしまえばイベントやプロパティを取り換えるだけで、結構いろいろなことができてしまう便利さに惹かれています。
始めたばかりなので間違いもあるかもしれませんが、自分なりに実験してこれは使えるなって感じたことを纏めました。
普段C#をやっているので、jQuery と C# を照らし合わせて、気付いたことがありました。
C# で、ラムダ式と呼ばれている記法が、jQuery で使われていること。
ラムダ自体は、Javaでもあるようですが、他の言語をよく知らないので、C#としました。
共通化したいメソッドを匿名関数から分離して、一般的なメソッドにしてあげれば、他の $(function(){}); からでも呼び出し可能なメソッドを記述できること。
そんなメリットがあろうかと思います。
下記、コメント欄に、
「ラムダ式による場合」と書かれたコードが、一般的なjQueryによる関数の例示です。
一方、「ラムダ式によらない場合」と書かれたコードが、この度発見したjQueryの記述法です。
C言語の関数ポインタみたいな感じしますよね?
引数を渡したいときはどうするかとか、もっと研究の余地はありそうです。
コーディング
<!DOCTYPE html>
<html lang="ja">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
// ラムダ式による場合
$(function(){
$('#write').click(function(){
var str = $('#write').text();
$('#text').text(str);
$('#kone').html("<button>kijitora</button>");
});
});
// ラムダ式によらない場合
$(function(){
$('#write').click(koneko);
// これでもよいとは思いますが…
$('#write').click(function(){
koneko();
});
});
function koneko(){
var str = $('#write').text();
$('#text').text(str);
$('#kone').html("<button>kijitora</button>");
$('#write').fadeOut();
};
</script>
</head>
<body>
<textarea id="text">koneko</textarea>
<button id="write">こねこ</button>
<div id="kone"></div>
</body>
</html>