function foo(){ return this; }
函數調用者是誰,就指向誰;直接調用指向window;
2.事件中:html事件中,指向window;dom0事件中,指向事件的觸發者(綁定元素的節點);dom2事件中,非IE中指向綁定的元素節點;IE中直接指向window;
3.閉包中:this指向window;
4.對象中:this指向當前對象;如果有多級對象包裹,指代上一級對象;
( 1).
var foo = { a:18, num:{ a:10, num:function(){ console.log(this.a);//10 } } } foo.num.num();
(2).
var foo = { a:18, num:{ num:function(){ console.log(this.a);//undefined } } } foo.num.num();
5.call函數和apply函數能改變this的指向,bind函數也能改變函數指向;
6.構造函數模塊:
總結:構造函數中,返回值是基本數據類型,那么this指向構造函數的實例;返回值是對象則this指向該對象;
function Foo(){ this.user = 'my'; return {}; } var na = new Foo(); console.log(na.user);//返回值undefined; function Foo(){ this.user = 'my'; return 1; } var na = new Foo(); console.log(na.user);//返回值my
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com