在js中寫函式時,很多用到this. this究竟是什麼,this是個關鍵字,是個指標,指向執行環境作用域,也稱之為上下文。
先說下函式吧,個人理解是函式是在語言中重複呼叫的**塊.
在js裡,
把函式賦值給物件的屬性時,稱之為方法
如
var m={};
m.title='title';
m.show=function()
m.show()
就是把函式作為物件m的方法來呼叫
這樣的話,this指向的就是m這個物件.
直接調函式名的叫函式
var a=1212;
function show()
show()// 1212在全域性環境裡,可以把全域性變數理解為window的屬性,全域性函式為window的方法
看下面的例子:
var m ={};
m.id='mmm';
m.show=function()
var a={};
a.id='aaa';
a.show=m.show;
a.show(); //aaa
a.show=m.show; 先理解這句話,因為函式是個物件,
m.show=function()
這表示式相當於a.show 與m.show同時引用指向function()
其實相當於a.show=function()
所以呼叫a.show()時,this指向的是a物件,
再看以下乙個栗子
var m ={};
m.id='mmm'
m.show=function()
var a={}
a.id='aaa'
a.show=function();
a.show(); //mmm
所以呼叫a.show()時,相當於呼叫了m.show()的方法,所以this.指向的是m物件。
再看以下乙個例子,一開始還是不很懂
var color='red';
node.style.color=this.color;
alert(this.color);
}function findnode(callback)
alert(this.color); //red 而不是green
函式傳參時,是按值傳參的,而不是引用
關於傳參,按值傳遞過去的
function show(a);
c.prop=true;
var showprop=function(obj)
再看下面一例子
var c ={};
c.prop=true;
var showprop=function(obj){
obj = new object();
obj.prop=false
return obj;
showprop(c);
alert(c.prop); //true
這裡明明把傳入obj修改了,如果按照函式按引用傳參,函式裡面的修改肯定會反映到外部
關於VLOOKUP函式的用法
關於vlookup函式的用法 一 功能 在 的首列查詢指定的資料,並返回指定的資料所在行中的指定列處的資料。二 語法 標準格式 vlookup lookup value,table array,col index num range lookup 三 語法解釋 vlookup lookup valu...
關於memset函式的用法
函式原型 void memset void s,int c,size t n memset 作用是在一段記憶體塊中填充某個給定的值,它對較大的結構體或陣列進行清零操作的一種最快方法。1.如果用memset a,1,20 就是對a指向的記憶體的20個位元組進行賦值,每個都用ascii為1的字元去填充,...
關於qsort函式的用法
qsort 功 能 使用快速排序例程進行排序 用 法 void qsort void base,int nelem,int width,int fcmp const void const void 各引數 1 待排序陣列首位址 2 陣列中待排序元素數量 3 各元素的占用空間大小 4 指向函式的指標 ...