JS筆記 跟著大佬學習之JS的this指向

2021-10-25 18:33:38 字數 1385 閱讀 4571

跟著大佬學習之js的this指向

【我一直傻傻分不清楚,今天和大家一起披關斬棘】

原創 | gooddeep

首先總結下在不同函式間this的區別:

1.普通函式下的this:

2.箭頭函式中的this:

上**:

普通函式中的this

functiona(

)a()

因為a是乙個全域性的函式,也就是掛載在window物件下的, 所以a(),等價於window.a()

var obj=)}

}obj.

say(

)

因為定時器的函式,沒有預設的宿主物件,所以指向window

//嚴格模式下的this

function

test()

test

()

嚴格模式下,函式沒有直接的呼叫者,this的指向是undefined

'use strict'

var obj=

}obj.

say(

)

嚴格模式下,有直接呼叫者的函式this是obj

箭頭函式中的this

var obj=)}

}

此時定時器的this繼承obj,指的是定義它的物件obj

var obj =)}

f1()}

}obj.

say(

)//f1呼叫的時候,沒有宿主物件,所以指向window物件

箭頭函式使settimeout裡面的this,繫結的是定義時所在的作用域,而不是指向執行的作用域

相當於window.settimeout(()=>{})

var obj=)}

f1()}

}obj.

say(

)

因為f1定義時所處的函式中的this指的是obj(箭頭函式繫結this指向的是宿主物件)

而settimeout中的箭頭函式this繼承f1,不管多少層繼承,都是obj

JS學習筆記 之 try catch

try catch e finally 處理流程 a.正常執行try內的 b.遇到錯誤,停止執行後續try內的 並跳轉到catch部分,同時將錯誤資訊封裝到error物件中傳入catch i.執行catch部分 可利用傳入的error物件,列印錯誤資訊 通過try catch 捕捉到的錯誤資訊不會丟...

js學習筆記之正則

是為了提取匹配的字串。表示式中有幾個 就有幾個相應的匹配字串。s 表示連續空格的字串。是定義匹配的字元範圍。比如 a za z0 9 表示相應位置的字元要匹配英文本元和數字。s 表示空格或者 號。一般用來表示匹配的長度,比如 s 表示匹配三個空格,s表示匹配一到三個空格。0 9 a z a z 包含...

JS高階程式設計學習筆記之JS事件(1)

事件流 冒泡定義 事件開始時由最具體的元素接收,然後逐級上傳到較為不具體的節點。ie9 ff chrome safari會將事件一直冒泡到window物件。ie5.5及其以下會跳過元素,直接從body跳到document 若發生事件的節點元素並沒有繫結該事件,則這個動作會向上冒泡,直到被執行,一直冒...