鍍金池/ 問答/Java  HTML/ 我為什么不能調(diào)用在$(function){}封裝的函數(shù)?

我為什么不能調(diào)用在$(function){}封裝的函數(shù)?

clipboard.png
我的問題是,為什么onclick = "func1()";時系統(tǒng)會報錯呢:
clipboard.png
明明alert(1)有成功執(zhí)行,難道只能像func2一樣放在$(function){}外面么??

回答
編輯回答
別傷我

1樓的回答只是幫您解決了問題,我來幫您捋一下該問題出現(xiàn)的原因。其實是涉及到了js函數(shù)作用域的問題。
$(function(){});是一個匿名函數(shù),func1是在這個匿名函數(shù)里聲明的,所以只有在這個匿名函數(shù)里面可以訪問到。而你在a標簽中【onclick = "func1()"】這樣寫的話,表明是要調(diào)用window上的func1,但是window上沒有聲明func1函數(shù),所以提示你func1 is not defined(找不到)。
關(guān)于作用域的知識請點擊這里
您還可以點擊這里了解更多前端的重點知識,我也正在看,寫得很不錯的文章。
希望我的回答能幫助到您^_^

2018年8月20日 10:59
編輯回答
臭榴蓮

你好,的問題在于
javascript: void(0);
void 寫成了 viod

2018年9月20日 13:14
編輯回答
薄荷綠
$(function(){
   var test = 1;
   function testFunc(){
    alert(1)
   }
})

這里面創(chuàng)建的函數(shù)和變量在外部都是無法訪問的,這種寫法就相當在一個function里面創(chuàng)建變量,在這個function的外部肯定是無法訪問的

如果想要訪問的話可以這樣寫,但是不推薦
window.func2 = function(){alert(111)}

2017年6月25日 00:14