常見的this指向:
常見的this指向
全域性下的this指向window
函式中的this,誰呼叫指向誰
建構函式中的this指向建構函式的物件
物件中的this預設指向當前物件
事件處理函式中this誰觸發指向誰 (指向觸發事件的目標元素)
定時器函式, this 指向 window
箭頭函式中沒有this,但是箭頭函式**現this就去父域中找父域this指向誰就指誰
函式預編譯過程中,this指向window
區分this使用時指向問題:
- 第一步:看this在**
全域性this指向window
- 第二步:區分在什麼函式中
function函式:1)事件處理函式:this指向觸發事件的物件
2)建構函式:this指向建構函式建立的物件
- 有 ----> this指向引數一物件
- 無 ----> 誰呼叫指向誰
注意:this.*** = nnn 可能是重新賦值 或 新增屬性
當乙個物件需要呼叫其他物件的函式時,可以通過 fun.call() 實現,fun是方法名。
call(引數一,引數二,、、、):
引數一:表示函式的擁有者,讓誰呼叫函式
從第二個引數開始,依次是呼叫函式時需要傳遞的引數
與 call() 用法相似,區別是引數傳遞方式不同
call(引數一,[引數二]):
引數一:表示函式的擁有者
引數二:是乙個陣列,把需要傳遞的引數放入陣列中
fun.bind() 會建立乙個新的函式,新的函式和原函式功能相同
新的函式和原函式區別:兩個方法中的 this 指向不同,bind() 方法通過第乙個引數指定了函式呼叫者(this的指向)
bind(引數一,引數二,、、、):
引數一:bind() 第乙個引數傳遞誰,this指向誰
從第二個引數開始,是呼叫方法所需要的引數
區別
相同點:都是【函式物件】中屬性,改變【函式中】this指向
this指向 改變this指向
function a a 此處相當於window.a 這僅是我個人的理解 在這個 中我們可以看出在 的結尾是由window來呼叫的函式a,那麼這個時候this指向window,this.user,全域性中沒有user,所以先定義了,但是沒有賦值,所以列印出undefined this指向練習二 va...
改變this指向
實現new完整版 function fn name,age fn.prototype.say function var obj1 newfn 高 18 console.log obj1 obj1 自己模擬 var obj 建立對fn.call obj,gao 19 改變建構函式的this 指向 指向...
改變this指向
改變this的指向 call 方法 bind方法 new關鍵字 區別在普通函式中,this指向window 在建構函式中,this指向建立的物件 在方法宣告中,this指向呼叫者 在定時器中,this指向window 在事件中,this 指向事件源 this 指向了觸發事件的 dom 元素本身 全域...