初心者向けのjQuery入門講座|デザイナー向けのJavaScriptライブラリ

このエントリーをはてなブックマークに追加
索引
Core:コアとなる仕組み
Selectors:セレクタ
Attributes:属性
Traversing:対象の変更
Manipulation:操作
CSS:スタイルシート
Events:イベント
Effects:演出効果
Ajax:xml等との連携
Utilities:ユーティリティ
Data:データ
Miscellaneous:諸々
Deferred:処理管理
Callbacks:コールバック
Internals:内部処理

jQuery.isFunction( )functionかどうかをチェック

構文

functionかどうかをチェック返値:true/false
jQuery.isFunction( 調査対象 )ver1.2〜

機能

jQuery.isFunctionメソッドは引数に指定したものがfunctionかどうかをチェックします。functionであればtrue、異なればfalseを返します。

解説

functionかどうかをチェックする

サンプル(isFunction/01.html)を開いてbody内にbutton要素しかないことを確認して下さい。jQueryでは、まず以下の様にfunction「myFunc」が作成されていることを確認してください。確認用なので何も処理が設定されていない空のfunctionになっています。

var myFunc = function(){};

続いて以下の部分を確認してください。buttonをクリックするとjQuery.isFunctionメソッドを利用して、functionかどうかチェックします。チェックした結果は変数chkに代入しアラートで表示します。

$("button").click(function(){
	var chk = $.isFunction(myFunc);
	alert(chk);
});

myFuncはfunctionなので、buttonをクリックするとアラートで「true」と表示されます。ついでにfunctionではない場合のサンプルも作成しました。

サンプル(isFunction/01b.html)を開いてisFunction/01.htmlとはほとんど同じで、異なるのは以下の様にfunctionではなく文字列が設定されている点だけです。

var myFunc = "test";

文字列はfunctionではないので、buttonをクリックするとアラートで「false」と表示されます。

function名の後には()を付けないように

引数に設定するfunctionは()を付けてはいけません。()を付けてしまうとfunctionを実行することになり、返ってきた値をチェックすることになります。

サンプル(isFunction/02.html)を開いて、ほとんどisFunction/01.htmlと同じ事を確認してください。異なっているのは以下の様にmyFuncに()を付けている点だけです。

$("button").click(function(){
	var chk = $.isFunction(myFunc());
	alert(chk);
});

myFuncは何も返していないため、buttonをクリックするとfalseと表示されます。functionをチェックする際は()を付けないように気を付けましょう

ちなみにmyFuncがfunctionを返せばtrueとなります。サンプル(isFunction/02b.html)を開いて、myFuncが以下の様に変更されているのを確認してください。returnでfunctionを返すようにしました。

var myFunc = function(){
	return function(){};
};

この場合はmyFuncが実行され、返値としてfunctionが得られるのでアラートで「true」と表示されます。

メモ

javaScriptのメソッドやjQueryのメソッドも判断できます

javaScriptのメソッドやjQueryのメソッドを疑ってもしょうがないのですが、これらもチェックできます。サンプル(isFunction/test01.html)ではjavaScriptのalertをチェックしてみました。

("button").click(function(){
	var chk = $.isFunction(alert);
	alert(chk);
});

buttonをクリックするときちんと「true」と表示されfunctionであることが確認できます。

さらにjQueryのisFunction自体がfunction稼働か調べてみました。
→サンプル(isFunction/test01b.html

$("button").click(function(){
	var chk = $.isFunction($.isFunction);
	alert(chk);
});

buttonをクリックするときちんと「true」と表示されfunctionであることが確認できます。