this 的指向以及如何改變指向

2021-09-27 12:07:49 字數 854 閱讀 4277

this 永遠指向最後呼叫它的那個物件

箭頭函式語法比函式表示式更短,並且不繫結自己的this需要通過查詢作用域鏈來確定 this 的值,如果箭頭函式被非箭頭函式包含,this 繫結的就是最近一層非箭頭函式的 this。

在函式內部使用 _this = this

先將呼叫這個函式的物件儲存在變數 _this 中,然後在函式中都使用這個 _this

var name =

"windows"

;var a =

, foo2:

function()

,100);

}};a.

foo2()

// ryan

//在 foo2 中,首先設定 var _this = this;(this 是呼叫 foo2 的物件 a)

為了防止在 foo2 中的 settimeout 被 window 呼叫而導致 this 為 window

將 this

(指向變數 a) 賦值給乙個變數 _this,這樣,在 foo2 中我們使用 _this 就是指向物件 a

call 接受的是若干個引數列表

bind 建立乙個新的函式,必須要手動呼叫

用new呼叫函式,改變指向new的例項物件

function

foo1()

var foo2 =

newfoo1()

;console.

log(foo1.name)

;

this 的指向 以及 改變 this 指向的方法

1 全域性作用域 或 普通函式 的呼叫 或 定時器函式 this 指向 window console.log this function宣告函式 function fu fu 相當於 window.fu function宣告函式 賦值給變數 var fu function fu 自執行函式 func...

this指向 改變this指向

常見的this指向 常見的this指向 全域性下的this指向window 函式中的this,誰呼叫指向誰 建構函式中的this指向建構函式的物件 物件中的this預設指向當前物件 事件處理函式中this誰觸發指向誰 指向觸發事件的目標元素 定時器函式,this 指向 window 箭頭函式中沒有t...

this指向 改變this指向

function a a 此處相當於window.a 這僅是我個人的理解 在這個 中我們可以看出在 的結尾是由window來呼叫的函式a,那麼這個時候this指向window,this.user,全域性中沒有user,所以先定義了,但是沒有賦值,所以列印出undefined this指向練習二 va...