web-dev-qa-db-ja.com

jQuery isFunction check error「関数が定義されていません」

関数を実行する前に、関数が存在するかどうかを確認したい。ここに私のコードがあります:

if ($.isFunction(myfunc())) {
    console.log("function exist, run it!!!");
}

ただし、関数が使用できない場合、エラーが発生しました:

myfuncは定義されていません

どうすれば検出できますか?これが私の動作テストです: http://jsfiddle.net/3m3Y3/

48
user1995781

置くことによって ()関数名の後、実際に最初の行で実行しようとしています。

代わりに、実行せずに関数名を使用する必要があります。

if ($.isFunction(myfunc)) {

ただし、-myfuncが関数ではなく、他の定義済み変数でもない場合、エラーは返されますが、別の変数が。何かのようなもの myfunc is not defined

名前が存在することを確認し、次のように関数であることを確認する必要があります。

if (typeof myfunc !== 'undefined' && $.isFunction(myfunc)) {

ここでの作業例: http://jsfiddle.net/sXV6w/

133
jcsanyi

これを試して

if(typeof myfunc == 'function'){
    alert("exist");
}else{
    alert("not exist");
}
13
user2249160