Soru jQuery isFunction kontrol hatası “işlev tanımlanmamış”


Çalıştırmaya çalışmadan önce bir fonksiyonun var olup olmadığını kontrol etmek istiyorum. İşte kodum:

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

Ancak, işlev mevcut olmadığında, hatayı aldım:

myfunc tanımlı değil

Algılamayı nasıl yapabilirim? İşte benim çalışma testim: http://jsfiddle.net/3m3Y3/


44
2017-11-17 05:52


Menşei




Cevaplar:


Koyarak () İşlev adından sonra, aslında ilk satırınızda onu çalıştırmaya çalışıyorsunuz.

Bunun yerine, işlev adını çalıştırmadan kullanmanız gerekir:

if ($.isFunction(myfunc)) {

ancak - Eğer myfunc bir işlev değildir ve başka tanımlanmış bir değişken değildir, yine de farklı bir hata olmasına rağmen, bu bir hata döndürür. Gibi bir şey myfunc is not defined.

Adın mevcut olduğunu kontrol etmeli ve bunun bir işlev olduğunu kontrol etmelisiniz:

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

Burada çalışma örneği: http://jsfiddle.net/sXV6w/


119
2017-11-17 05:54



Cevabınız için teşekkürler, ama hala işe yaramıyor. Burada test ettim: jsfiddle.net/3m3Y3 - user1995781
@ user1995781 kelimesini alıntılamak için ihtiyacınız var 'undefined' - Petah
Bu jQuery bağımlılık eklentileri için çalışmıyor, if (!!$.prototype.functionName) benim için çalıştı, cevabı kontrol et İşte - Vikas Khunteta


bunu dene

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

11
2017-11-17 06:17