日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript 报错 Uncaught TypeError: x is not a function 常见错误总结

發布時間:2024/3/13 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript 报错 Uncaught TypeError: x is not a function 常见错误总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是我近期犯的比較傻的一個錯誤,一定要mark一下。

以下代碼段是借用父類構造函數來實現繼承的一種方法,

不過在ES6已經可以使用類了,這個作為了解對閱讀以前的代碼還是有好處的。

代碼非常簡單,

1 定義一個父類構造函數,具有姓名、年齡兩個屬性。

2 利用原型對象定義公用方法sing。(不了解的可以看一下原型鏈的相關知識)

3 定義子類構造函數,并利用call繼承父類特性。

4 利用父類的新實例對象賦值給子類原型對象,從而獲得父類方法。

5 定義一個新子類實例對象son2,并使用父類方法sing。

然后報錯了,Uncaught TypeError: son2.sing is not a function。意思說son2.sing不是一個函數,可是檢查了幾遍函數沒寫錯呀。

<script>function Father(name,age){this.name=name;this.age=age;}Father.prototype.sing = function() {console.log("你好");}function son(name,age){Father.call(this,name,age);son.prototype=new Father();son.prototype.constructor=son;}var son2= new son();son2.sing();</script>

但其實錯誤很明顯,定義公用方法以及對原型對象的賦值不能放在構造函數里邊,所以把子類部分的原型對象部分提出來:

function son(name,age){Father.call(this,name,age);}son.prototype=new Father();son.prototype.constructor=son;var son2= new son();son2.sing();

報錯就解決了。

?

當然這個報錯不一定都是這個情況。如果你的問題和我的不一樣,還有幾種可能:

1 函數名寫錯了,檢查一下有沒有拼寫錯誤。

2 有重復命名的板塊,系統使用了不包含這個報錯函數的板塊。如這位朋友:

https://blog.csdn.net/shruber/article/details/79205295?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

3 變量和函數命名重復,而函數的命名優先級比變量高。

https://blog.csdn.net/weixin_40345099/article/details/82912474

4 歡迎補充

?

總結

以上是生活随笔為你收集整理的Javascript 报错 Uncaught TypeError: x is not a function 常见错误总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。