在建構函式中,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指標 這裡說的是函式而不是物件,因為物件不直接形成單獨的作用域...