標籤:
<1> js中this 的用法?
(key:函數是由調用的,四種情況標紅可知)
(http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html)
this 關鍵字指的是函數在運行時,自動產生的內部對象,只能在函數內部使用,隨著函數使用場合的變化this 的值也會發生變化,但是總原則是,this指的是調用函數的那個對象 =》範圍:函數內部 對象:調用函數的那個對象
this使用的四種情況
1.直接調用函數
var x = 1;
function test(){
this.x = 0;
}
test(); //直接調用函數,this代表的是全域對象Global
alert(x); //0
2.作為對象的方法被調用
function test(){
alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); // 1 由對象調用,作為對象的方法
3.作為建構函式調用(建構函式和普通函數的區別:是否使用new 方法產生新對象)
var x = 2;
function test(){
this.x = 1;
}
var o = new test(); //this 指代的是建構函式new的新對象
alert(x); //2
運行結果為2,表明全域變數x的值根本沒變
4.apply ,call 調用(這兩函數的作用是改變函數的調用對象,第一個參數代表改變後的函數調用對象,空時預設全域對象)
var x = 0;
function test(){
alert(this.x);
}
var o={};
o.x = 1;
o.m = test;
o.m.apply(); //0 this指的是全域對象。
o.m.apply(o); //1 指代O對象
拓展:http://www.cnblogs.com/xxcanghai/p/5189353.html
js 中關鍵字 this的用法