函式中this的指向

2021-10-10 04:58:13 字數 831 閱讀 3000

/*

this是什麼?

如何確定this的值?

*/function

person

(color)

this

.setcolor

=function

(value)

}person

('red');

// this是誰?,這裡是執行person方法,只會執行1,this列印window

var p =

newperson

('yelloe');

//this是誰?這裡生成乙個物件例項,指揮執行1,this列印當前物件例項

p.getcolor()

;//this是誰?這裡執行2,this列印物件p

var obj =

;p.setcolor.

call

(obj,

'black');

//this是誰?這裡執行3,this列印obj

var test = p.setcolor;

test()

;//this是誰?這裡執行3,this列印window

function

fun1()

fun2()

}fun1()

;//this列印window

var obj =

;function

foo(data)

// 傳入的引數形式

foo.

bind

(obj,33,

44,55)

();

函式中的this指向

普通函式的this this就是誰呼叫 this就指向誰 this是在呼叫的時候確定的 function f1 f1 window物件裡面的方法,它裡面的this指向當前這個物件 var obj var fn obj.print var fn obj.print undefuned fn this ...

箭頭函式中this的指向

箭頭函式中this的指向 在箭頭函式中沒有this,箭頭函式中的this是它捕獲過來的,注意 1.箭頭函式中的this一旦捕獲將無法在改變 2.箭頭函式是在它被宣告時開始捕獲的 3.什麼是宣告時呢?就是箭頭函式被呼叫時 4.捕獲的是離它最近的父級的this的指向 舉個栗子 var a 測試 let ...

箭頭函式中的this指向

let a a.bar undefinedbar函式中的this指向父作用域,而a物件沒有作用域,因此this不是a,列印結果為undefined function a a.prototype.bar console.log this.foo let a new a a.bar undefined原...