this的指向 普通函式 建構函式 call

2021-10-06 22:59:13 字數 947 閱讀 3749

在建構函式中,this指向例項物件,

普通函式中,this指向它的呼叫者,誰呼叫這個函式,this就是誰

call方法也可以修改this指向

functionfn(

)fn()

;// window

?上面例子中,是普通函式,沒有呼叫物件,其實呼叫者就是window,所以this指向window

var obj =

newobject()

;obi.

say=

function()

obj.

say();

// 呼叫者是obj,this為obj

var obj =

}var aaa =

'window'

;var fn = obj.foo;

obj.

foo();

// 「obj」fn(

);// 等同於window.fn() 「window」

function

person

(name)

}var p =

newperson

('老王');

p.say()

;// 例項物件person

只有new的時候,函式才稱得上建構函式,否則仍然是個普通函式

this指向call中第乙個例項物件

var p =

newperson

('老王');

fn.call

(p);

// call修改this指向為p,建構函式 指向例項物件 即person

fn.call

(null);

// 沒有呼叫者,那麼呼叫者是window

關於普通函式this指向

this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 這句話不那麼嚴謹,作為一般情況下是可以的 section1 如果乙個函式中有this,但是它沒有被上一級的物件所呼叫,那麼this指向的就是window,這裡需要說...

this 指向二 建構函式的this指向

在函式中,this沒有作用域和繼承的概念,this的指向主要看呼叫的方式,詳情請看this指向一,今天主要擼一擼當new 關鍵字呼叫函式時thsi內部的指向,分兩種情況 1.建構函式沒有呼叫return語句或者呼叫return語句但是沒有返回值或者返回乙個原始值得時候 當new呼叫方法時,會建立乙個...

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

this指向在箭頭函式和普通函式中的表現是不同的。1 箭頭函式 首先要明白的是箭頭函式的this指標是固定的,就是箭頭函式被定義時其所在環境的物件 因為箭頭函式其實自己是沒有this指標的,其this指標是判定了其直接外層的函式的this指標 這裡說的是函式而不是物件,因為物件不直接形成單獨的作用域...