国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從JQuery自定義校驗規則中看JS箭頭函數的this指向問題

Yu_Huang / 3216人閱讀

摘要:箭頭函數沒有自己的上下文,函數體中出現的在運行時綁定到最近的作用域上下文對象。綁定在元素上的校驗觸發之后,按照普通函數的寫法,即指向調用該方法的對象。但是,按照箭頭函數的屬性,即綁定到了最近一層的作用域節點。

哈哈,題目給人一種寫論文的感覺,但其實這篇文章要講得東西很少,很簡單,就當做是填了個坑吧。
今天在做項目的時候,要給form表單添加一些自定義的校驗規則,于是參考菜鳥教程的代碼,自己按需求寫了一下校驗規則。

如上圖,這是菜鳥教程官方給的,受上一個項目寫js代碼的習慣影響,我把原始的function函數寫法改成了箭頭函數,如下圖所示?!?br>

感覺沒有什么特別大的問題,校驗寫好了,也綁定到了form對應的元素上面,可是,提交表單的時候,控制臺報錯了,提示
"this.optional is not a function",于是google了一下,發現是由于箭頭函數的原因。箭頭函數沒有自己的this上下文,函數體中出現的this在運行時綁定到最近的作用域上下文對象。綁定在元素上的校驗觸發之后,按照普通函數的寫法,this即指向調用該方法的“validator”對象。但是,按照箭頭函數this的屬性,this即綁定到了最近一層的作用域“document”節點。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99128.html

相關文章

  • 論普通函數箭頭函數區別以及箭頭函數注意事項、不適用場景

    摘要:第二種情況是箭頭函數的如果指向普通函數它的繼承于該普通函數。箭頭函數的指向全局,使用會報未聲明的錯誤。 showImg(https://segmentfault.com/img/remote/1460000018610072?w=600&h=400); 箭頭函數是ES6的API,相信很多人都知道,因為其語法上相對于普通函數更簡潔,深受大家的喜愛。就是這種我們日常開發中一直在使用的API...

    paulquei 評論0 收藏0
  • 一篇文章帶你完全理解this

    摘要:追夢子追夢子通過在方法,給第一個參數添加要把添加到哪個環境中,簡單來說,就會指向那個對象。追夢子追夢子還有一點就是雖然也是對象,但是在這里還是指向那個函數的實例,因為比較特殊。追夢子追夢子在嚴格版中的默認的不再是,而是。 走在前端的大道上 本篇將自己讀過的相關 this指向 的文章中,對自己有啟發的章節片段總結在這(會對原文進行刪改),會不斷豐富提煉總結更新。 版本一 一句話 thi...

    Jenny_Tong 評論0 收藏0
  • 我遇到前端面試題2017

    摘要:箭頭函數與傳統函數的區別,主要集中在以下方面沒有和綁定,這些值由最近一層非箭頭函數決定。不能通過關鍵字調用,所以不能用作構造函數,否則程序會拋出錯誤。聲明的全局變量不是全局對象的屬性。 showImg(https://segmentfault.com/img/remote/1460000013229911?w=2402&h=1398); 本文首發于我的博客:http://blog.du...

    muddyway 評論0 收藏0
  • 我遇到前端面試題2017

    摘要:箭頭函數與傳統函數的區別,主要集中在以下方面沒有和綁定,這些值由最近一層非箭頭函數決定。不能通過關鍵字調用,所以不能用作構造函數,否則程序會拋出錯誤。聲明的全局變量不是全局對象的屬性。 showImg(https://segmentfault.com/img/remote/1460000013229911?w=2402&h=1398); 本文首發于我的博客:http://blog.du...

    Lucky_Boy 評論0 收藏0
  • 我遇到前端面試題2017

    摘要:箭頭函數與傳統函數的區別,主要集中在以下方面沒有和綁定,這些值由最近一層非箭頭函數決定。不能通過關鍵字調用,所以不能用作構造函數,否則程序會拋出錯誤。聲明的全局變量不是全局對象的屬性。 showImg(https://segmentfault.com/img/remote/1460000013229911?w=2402&h=1398); 本文首發于我的博客:http://blog.du...

    forrest23 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<