Javascript 中的this指向
阿新 • • 發佈:2017-08-17
hat log bsp fin span func fun efi script
1、作為對象的方法調用,this值當前對象
var obj={ name:"xiao", getName(){
this.name //xiao } }
obj.getName();
2、作為普通函數調用 this指向window, 當一個函數體 ,自執行時,裏面的this指向window,若想改變this 可以var that = this
var obj={ name:"xiao", getName(){this.name //xiao } } var fn = obj.getName fn();//undefined
3、構造函數調用時 指new的對象
function fn(name){ this.name=name return { name:‘bb‘ } } var obj =new fn(‘gg‘) obj.name// bb this指返回的對象
還有一種情況如果此時構造函數 顯示的返回一個對象的話 那麽this指向 返回的對象 而不是new的對象
所以,如果構造函數返回一個非對象類型數據的話,就不會造成上面的問題
4、call ,apply
它們倆都是強制改變this指向,它們都是接受兩個參數,第一個則是this,第二個是參數,
apply要求第二個參數是一個集合 數組或者類數組,call則是單個參數,call一般用於參數確定的情況,apply則用於參數不確定的情況
Javascript 中的this指向