普通函式和箭頭函式中的this指向

2021-10-01 18:06:44 字數 1496 閱讀 5221

普通函式的this指向window

function a()a(

)//window

dom元素繫結事件時的this,控制代碼裡的 this 值是該元素的引用

document.onclick(

function())

//this

setinterval和settimeout中傳入函式時,函式中的this會指向window物件

var num =0;

function obj (

), this.getnumlater =

function(),

1000

) }

}var obj =

new obj;

obj.getnum();

//1  列印的是obj.num,值為1

obj.getnumlater()/

/0  列印的是window.num,值為0

var num =0;

function obj (

), this.getnumlater =

function

().bind(this)

,1000

) }

}var obj =

new obj;

obj.getnum();

//1  列印的是obj.num,值為1

obj.getnumlater(this)//

0  列印的是obj.num,值為1

物件中的this指向物件本身

var obj =}}

obj.a(

)

var obj =,

say:

function())

}}

obj.a()/

/ /

/this都指向obj

window.val=1

;var obj =

}obj.dbl()/

/24

window.val=1

;var obj =

}var func = obj.dbl;

func();

//func 的this指向window

總結:

1.普通函式的this指向window

2. dom元素繫結的事件中的this指向該元素

3. 定時器中的this指向window(es6)

4. 物件中的 this指向物件本身

箭頭函式中的this 明天補全

箭頭函式this

定義函式所在的物件,不再是執行時所在的物件

沒有arguments,用 … 代替

3.箭頭函式不能當建構函式

箭頭函式 普通函式

箭頭函式的語法比普通函式更簡潔,是乙個匿名函式,不能作為建構函式,且不能使用new 普通函式 letfun 普通函式 function fun 箭頭函式有兩種格式 一種是和return 另一種是把二者省略掉 1 1.不能使用newlet fun let fn newfun 1.function on...

箭頭函式中的this和普通函式中的this對比

es6中新增了箭頭函式這種語法,箭頭函式以其簡潔性和方便獲取this的特性。下面來總結一下他們之間的區別 普通函式下的this 箭頭函式中的this 看下面這段 function a a 因為a是乙個全域性函式,也就是掛載在window物件下的,所以a 等價於window.a var obj obj...

箭頭函式和普通函式對比

let xx item item 單條語句可以省略return和 單個引數可以省略 let a let a new a 報錯 function a let a new a 不報錯arguments的一般使用場景是 允許傳入3個引數,中間乙個引數是可選。如果只傳1個參就是引數1用,傳入2個參就是引數1...