this指向 改變this指向

2021-09-26 11:21:33 字數 1036 閱讀 2962

function a()

a(); //此處相當於window.a()

這僅是我個人的理解

在這個**中我們可以看出在**的結尾是由window來呼叫的函式a,那麼這個時候this指向window,this.user,全域性中沒有user,所以先定義了,但是沒有賦值,所以列印出undefined

this指向練習二

var fun = 

}fun.fn();

在這裡我們可以看到,因為你呼叫這個fn是通過fun.fn()執行的,所以此時this指向fun物件,所以這個this.user就是相當於 fun.user,所以列印出』碼農』

1:相同點:都是【函式物件】中屬性 ,改變【函式中】this指向

2:不同點

改變this指向練習

call()方法

//這是在網上找的小例子

var person =

function aa(x, y)

aa(4, 5);

//此時相當於是window.aa(4,5) 所以此時this指向window 空

aa.call(person, 4, 5);

//此時用call來改變this指向 此時相當於person.aa(4,5) 所以指向person物件 zhangsan

//相當於person.aa(4,5) 所以指向person物件 zhangsan

bind() 建立的是乙個新的函式( 稱為繫結函式), 與被呼叫函式有相同的函式體, 當目標函式被呼叫時this的值繫結到 bind() 的第乙個引數上

var person = 

function aa(x, y)

aa.bind(person, 4, 5);

//只是更改了this指向,沒有輸出

aa.bind(person, 4, 5)();

//this指向person--4,5 person{}物件 zhangsan

this指向 改變this指向

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

改變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 元素本身 全域...