我寫了一個名爲search
功能,我希望被點擊該鏈接時調用,如下面的代碼片段顯示:爲什麼這個主播說「搜索不是功能」?
<body>
<script type="text/javascript">
function search() {
console.log('Searching');
}
</script>
<a href="#" onclick="search();">Click here</a>
</body>
但是,代碼並不如我所料,這將導致Uncaught TypeError: search is not a function
錯誤(工作在Chrome中)點擊鏈接時。
我試圖記錄search
明白爲什麼拋出的錯誤:
<a href="#" onclick="console.log(search)">Click here</a>
這個時候,控制檯的每個鏈接被點擊時登錄一個空字符串。令我感到困惑的是search
實際上是在其他地方定義爲一個空字符串,使我的函數定義無用。
所以我想知道點擊事件觸發時會發生什麼,什麼時候在search
這裏定義?
_「令我百思不解的是,‘搜索’,其實是指在其他地方爲空字符串」 _更改或者功能名稱或變量引用空字符串到不同的標識符應該解決問題,是嗎? – guest271314
內聯函數超越。所以'onclick'指的是_somewhere_空字符串'搜索'導致控制檯輸出。 'search' var必須在'function search()'之後定義,因此將其稱爲方法會導致錯誤。 – Searching
*「讓我感到困惑的是,」搜索「實際上是在其他地方定義爲空字符串」* - 您是否說過其他代碼在某處顯式將'search'定義爲空字符串,或者程序的行爲如如果它被定義在其他地方,即使它不在你的代碼中,你對其他定義可能在哪裏感到困惑? – nnnnnn