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