您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)javascript怎么調(diào)用函數(shù)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
javascript的調(diào)用函數(shù)方法有:1、使用makeArray函數(shù)作為它的一個(gè)方法,使用json的方式來聲明一個(gè)對(duì)象;2、使用【obj.myFunction()】方法調(diào)用語法。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版,DELL G3電腦。
javascript的調(diào)用函數(shù)方法有:
JavaScript函數(shù)調(diào)用規(guī)則1
在沒有通過明確所有者對(duì)象而直接調(diào)用的函數(shù)中,如myFunction(),將導(dǎo)致this的值成為默認(rèn)對(duì)象(瀏覽器中的窗口)。
函數(shù)調(diào)用
讓我們現(xiàn)在創(chuàng)建一個(gè)簡單的對(duì)象,使用 makeArray函數(shù)作為它的一個(gè)方法,我們將使用json的方式來聲明一個(gè)對(duì)象,我們也來調(diào)用這個(gè)方法
//creating the object var arrayMaker = { someProperty: 'some value here', make: makeArray }; //invoke the make() method arrayMaker.make('one', 'two'); // => [ arrayMaker, 'one', 'two' ] // alternative syntax, using square brackets arrayMaker['make']('one', 'two'); // => [ arrayMaker, 'one', 'two' ]
看到這里的不同了吧,this的值變成了對(duì)象本身.你可能會(huì)疑問原始的函數(shù)定義并沒有改變,為何它不是window了呢.好吧,這就是函數(shù)在JSavacript中傳遞的方式,函數(shù)在JavaScript里是一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類型,確切的說是一個(gè)對(duì)象.你可以傳遞它們或者復(fù)制他們.就好像整個(gè)函數(shù)連帶參數(shù)列表和函數(shù)體都被復(fù)制,且被分配給了 arrayMaker里的屬性make,那就好像這樣定義一個(gè) arrayMaker:
var arrayMaker = { someProperty: 'some value here', make: function (arg1, arg2) { return [ this, arg1, arg2 ]; } };
JavaScript函數(shù)調(diào)用規(guī)則2
在一個(gè)使用方法調(diào)用語法,像 obj.myFunction()或者 obj['myFunction'](),這時(shí)this的值為obj
這是事件處理代碼中bug的主要源頭,看看這些例子
<input type="button" value="Button 1" id="btn1" /> <input type="button" value="Button 2" id="btn2" /> <input type="button" value="Button 3" id="btn3" onclick="buttonClicked();"/> <script type="text/javascript"> function buttonClicked(){ var text = (this === window) ? 'window' : this.id; alert( text ); } var button1 = document.getElementById('btn1'); var button2 = document.getElementById('btn2'); button1.onclick = buttonClicked; button2.onclick = function(){ buttonClicked(); }; </script>
點(diǎn)擊第一個(gè)按鈕將會(huì)顯示”btn”因?yàn)樗且粋€(gè)方法調(diào)用,this為所屬的對(duì)象(按鈕元素) 點(diǎn)擊第二個(gè)按鈕將顯示”window”因?yàn)?buttonClicked是被直接調(diào)用的(不像 obj.buttonClicked().) 這和我們第三個(gè)按鈕,將事件處理函數(shù)直接放在標(biāo)簽里是一樣的.所以點(diǎn)擊第三個(gè)按鈕的結(jié)果是和第二個(gè)一樣的.
使用像jQuery的JS庫有這樣的優(yōu)點(diǎn),當(dāng)在jQuery里定義了一個(gè)事件處理函數(shù),JS庫會(huì)幫助重寫this的值以保證它包含了當(dāng)前事件源元素的引用,
//使用jQuery $('#btn1').click( function() { alert( this.id ); // jQuery ensures 'this' will be the button });
感謝各位的閱讀!關(guān)于“javascript怎么調(diào)用函數(shù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。