摘要 頁面報錯bug是常有的事,我們可以根據錯誤bug提示關鍵性的去修複問題。依稀的記得之前有個小伙伴詢問了一個js異常的錯誤bug:Uncaught TypeError: xxx is not a function。這個錯誤問題定位處理起來很快,但是我卻不知其所以然。為了弄清楚報錯的深層面原因,去 ...
摘要
頁面報錯bug是常有的事,我們可以根據錯誤bug提示關鍵性的去修複問題。依稀的記得之前有個小伙伴詢問了一個js異常的錯誤bug:Uncaught TypeError: xxx is not a function。這個錯誤問題定位處理起來很快,但是我卻不知其所以然。為了弄清楚報錯的深層面原因,去調研了關於錯誤的解決方案。學習吸取別人的經驗,對這個常見的報錯的原理有了新的認識,這次就分享總結Uncaught TypeError的錯誤原由以及解決方案。具體報錯信息如下圖所示:
解決方案
一、在引用並嘗試調用該方法時,未在調用前聲明定義該方法,因此解析為undefined。在調用方法時,undefined不是函數(例如錯誤提示)。
二、聲明定義的函數名不能和頁面的某個標簽的id名相同。某些瀏覽器僅通過在js代碼中指定id即可訪問節點元素,然後在DOM中的元素會覆蓋所聲明定義的函數。(這個錯誤的原因需要特別註意,因為很少有人會註意到這類比較特別的錯誤原因)
參考文檔:
https://stackoverflow.com/questions/15338973/typeerror-xxx-is-not-a-function/15339330#15339330
https://stackoverflow.com/questions/12816400/javascript-typeerror-xxx-is-not-a-function
版權聲明:本文為博主原創文章,轉載請附上原文出處鏈接和本聲明。