關於JS 函式this的用法

2021-06-27 02:52:31 字數 1551 閱讀 3353

在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 指向函式的指標 ...