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