this是Javascript語言的一個關(guān)鍵字它代表函數(shù)運行時,自動生成的一個內(nèi)部對象,只能在函數(shù)內(nèi)部使用,下面分四種情況
情況一:單純的函數(shù)調(diào)用
這是函數(shù)的最通常用法,屬于全局性調(diào)用,因此this就代表全局對象Global。
function test(){
this.x = 1;
alert(this.x);
}
test(); // 1
在此:輸出結(jié)果為1
情況二:作為對象方法的調(diào)用
函數(shù)還可以作為某個對象的方法調(diào)用,這時this就指這個上級對象。
function test(){
alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); // 1
情況三: 作為構(gòu)造函數(shù)調(diào)用
所謂的構(gòu)造函數(shù),就是通過這個函數(shù)生成一個新對象(object)。這時,this就指這個新對象。
function test(){
this.x = 1;
}
var o = new test();
alert(o.x); // 1
情況四 apply調(diào)用
apply()是函數(shù)對象的一個方法,它的作用是改變函數(shù)的調(diào)用對象,它的第一個參數(shù)就表示改變后的調(diào)用這個函數(shù)的對象。因此,this指的就是這第一個參數(shù)。
var x = 0;
function test(){
alert(this.x);
}
var o={};
o.x = 1;
o.m = test;
o.m.apply(); //0
apply()的參數(shù)為空時,默認(rèn)調(diào)用全局對象。因此,這時的運行結(jié)果為0,證明this指的是全局對象。
事件:
bind()向匹配元素附加一個或更多事件處理器
blur()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 blur 事件
change()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 change 事件
click()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 click 事件
dblclick()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 double click 事件
delegate()向匹配元素的當(dāng)前或未來的子元素附加一個或多個事件處理器
die()移除所有通過 live() 函數(shù)添加的事件處理程序。
error()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 error 事件
event.isDefaultPrevented()返回 event 對象上是否調(diào)用了 event.preventDefault()。
event.pageX相對于文檔左邊緣的鼠標(biāo)位置。
event.pageY相對于文檔上邊緣的鼠標(biāo)位置。
event.preventDefault()阻止事件的默認(rèn)動作。
event.result包含由被指定事件觸發(fā)的事件處理器返回的最后一個值。
event.target觸發(fā)該事件的 DOM 元素。
event.timeStamp該屬性返回從 1970 年 1 月 1 日到事件發(fā)生時的毫秒數(shù)。
event.type描述事件的類型。
event.which指示按了哪個鍵或按鈕。
focus()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 focus 事件
keydown()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 key down 事件
keypress()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 key press 事件
keyup()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 key up 事件
live()為當(dāng)前或未來的匹配元素添加一個或多個事件處理器
load()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 load 事件
mousedown()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 mouse down 事件
mouseenter()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 mouse enter 事件
mouseleave()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 mouse leave 事件
mousemove()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 mouse move 事件
mouseout()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 mouse out 事件
mouseover()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 mouse over 事件
mouseup()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 mouse up 事件
one()向匹配元素添加事件處理器。每個元素只能觸發(fā)一次該處理器。
ready()文檔就緒事件(當(dāng) HTML 文檔就緒可用時)
resize()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 resize 事件
scroll()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 scroll 事件
select()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 select 事件
submit()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 submit 事件
toggle()綁定兩個或多個事件處理器函數(shù),當(dāng)發(fā)生輪流的 click 事件時執(zhí)行。
trigger()所有匹配元素的指定事件
triggerHandler()第一個被匹配元素的指定事件
unbind()從匹配元素移除一個被添加的事件處理器
undelegate()從匹配元素移除一個被添加的事件處理器,現(xiàn)在或?qū)?/p>
unload()觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的 unload 事件