摘要:自執(zhí)行函數(shù)中的永遠(yuǎn)是給元素的某一個(gè)事件綁定方法,當(dāng)事件出發(fā)的時(shí)候,執(zhí)行對(duì)應(yīng)的方法,方法中的是當(dāng)前元素。
JS中的this代表的是當(dāng)前行為執(zhí)行的主體,JS中的context代表的是當(dāng)前行為執(zhí)行的環(huán)境,this是誰(shuí)和函數(shù)在哪定義的以及函數(shù)在哪執(zhí)行的沒(méi)有任何的關(guān)系,如何區(qū)分this?
一、非嚴(yán)格模式下
1、函數(shù)執(zhí)行,首先看函數(shù)名前面是否有‘.’,有的話,‘.’前面是誰(shuí),this就是誰(shuí),沒(méi)有的話this就是window。
2、自執(zhí)行函數(shù)中的this永遠(yuǎn)是window
3、給元素的某一個(gè)事件綁定方法,當(dāng)事件出發(fā)的時(shí)候,執(zhí)行對(duì)應(yīng)的方法,方法中的this是當(dāng)前元素。
4、在構(gòu)造函數(shù)模式中,this.xxx = xxx,this就是當(dāng)前類(lèi)的實(shí)例
5、用call、apply、bind改變this
(五種情況下第五種優(yōu)先)
二、嚴(yán)格模式下
1、自執(zhí)行函數(shù)中的this永遠(yuǎn)是undefined
2、函數(shù)執(zhí)行,首先看函數(shù)名前面是否有點(diǎn),有的話,點(diǎn)前面是誰(shuí),this就是誰(shuí),沒(méi)有的話this就是undefined
結(jié)論:嚴(yán)格模式下的this相對(duì)于非嚴(yán)格模式下的this主要區(qū)別在于:對(duì)于js代碼中沒(méi)有執(zhí)行主體的情況下,非嚴(yán)格模式下默認(rèn)都是window執(zhí)行的,所以this指向的是window;但是在嚴(yán)格模式下,沒(méi)有寫(xiě)就是沒(méi)有執(zhí)行主體,this指向的是undefined。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81248.html
摘要:對(duì)象的屬性與組件的屬性一一對(duì)應(yīng),但是有一個(gè)例外,就是屬性,它表示組件的所有子節(jié)點(diǎn)。此外,還提供兩種特殊狀態(tài)的處理函數(shù)。組件中樣式的寫(xiě)法這種方式錯(cuò)誤使用這種方式,第一重大括號(hào)表示這是語(yǔ)法,第二重大括號(hào)表示樣式對(duì)象。 如何渲染到容器 直接上代碼: //第一個(gè)參數(shù)是構(gòu)造的組件,第二個(gè)參數(shù)是使用組件的容器 ReactDom.render( , document.getEleme...
摘要:其實(shí)在之前的工廠模式里面,也存在這個(gè)問(wèn)題,不過(guò)工廠模式更徹底,直接完全創(chuàng)建一個(gè)新對(duì)象,而構(gòu)造函數(shù)模式的話只是方法會(huì)被重新創(chuàng)建。 我來(lái)重新學(xué)習(xí) javascript 的面向?qū)ο螅╬art 1) 很多job 的描述都說(shuō)要求精通 javascript 面向?qū)ο缶幊?,但是根?jù)一般的套路,寫(xiě)精通其實(shí)就是熟練,寫(xiě)熟練其實(shí)就是一般,寫(xiě)一般其實(shí)就是懵逼! showImg(https://segment...
JavaScript 三種方法,可以確定一個(gè)值到底是什么類(lèi)型。 typeofinstanceofObject.prototype.toString 為什么需要確定類(lèi)型 ? ? 只有確定類(lèi)型的情況,才知道當(dāng)前操作對(duì)象擁有哪些功能; 比如使用 push,unshfit,shfit 等方法時(shí),那么其必須為數(shù)組類(lèi)型時(shí)才能正確使用; ? 當(dāng)某些情況添加類(lèi)型檢查時(shí),這樣代碼更加健壯,安全; typ...
摘要:函數(shù)表達(dá)式函數(shù)聲明立即執(zhí)行函數(shù)表達(dá)式。變量提升所有的聲明變量和函數(shù)都會(huì)被移動(dòng)到各自作用域的最頂端,這個(gè)過(guò)程稱(chēng)為提升。嚴(yán)格模式綁定到,否則為全局對(duì)象。這種設(shè)置為單向,不可取消。如果值為則禁止刪除這個(gè)屬性。是否為可枚舉的。 變量賦值 變量賦值分為兩個(gè)動(dòng)作: 如果當(dāng)前沒(méi)有聲明過(guò),那編譯器會(huì)在當(dāng)前作用域聲明一個(gè)。 運(yùn)行時(shí)引擎會(huì)在作用域查找該變量,如果找到就對(duì)其賦值。 查詢(xún)有:LHS查詢(xún)和R...
摘要:然而,異步函數(shù)不會(huì)立即被推入調(diào)用堆棧,而是會(huì)被推入任務(wù)隊(duì)列,并在調(diào)用堆棧為空后執(zhí)行。將事件從任務(wù)隊(duì)列傳輸?shù)秸{(diào)用堆棧稱(chēng)為事件循環(huán)。我們調(diào)用接受和或返回另一個(gè)函數(shù)稱(chēng)為高階函數(shù)的函數(shù)。 為了保證可讀性,本文采用意譯而非直譯 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! 1.如何理解 JS 中的this關(guān)鍵字? JS 初學(xué)者總是對(duì) this 關(guān)鍵字感到困惑,因?yàn)榕c其他現(xiàn)...
閱讀 3363·2021-10-13 09:40
閱讀 2601·2021-10-08 10:17
閱讀 4006·2021-09-28 09:45
閱讀 938·2021-09-28 09:35
閱讀 1819·2019-08-30 10:51
閱讀 2910·2019-08-26 12:11
閱讀 1655·2019-08-26 10:41
閱讀 3103·2019-08-23 17:10