window.onload=函數(shù);

創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元石城做網(wǎng)站,已為上家服務(wù),為石城各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
這種寫法,是把函數(shù)作為一個對象賦值給onload事件,這樣當(dāng)這個事件觸發(fā)時就會執(zhí)行這個函數(shù)了。
而如果是:
window.onload=函數(shù)();
這樣就是讓函數(shù)立即執(zhí)行,然后把運行后的返回值再賦值給onload事件,這顯然是錯誤的。
window.onload=function(){函數(shù)();}
這種寫法,則是把一個匿名函數(shù)賦值給onload事件,然后在匿名函數(shù)內(nèi)部再執(zhí)行真正需要執(zhí)行的函數(shù)。這里面的函數(shù)加上()就是正確的,而且是必須的,因為這個函數(shù)是在匿名函數(shù)被onload事件觸發(fā)后才執(zhí)行的,這個時候肯定就要立即執(zhí)行啦。
而如果寫成這樣:
window.onload=function(){函數(shù)();}() ? //請注意這后面是有括號的
就表示要立即執(zhí)行匿名函數(shù),然后把返回值賦值給onload事件,這當(dāng)然也是錯誤的。
在函數(shù)名后面加括號,是表示要立即執(zhí)行這個函數(shù),這個跟是不是在函數(shù)里調(diào)用函數(shù)是沒有半毛錢關(guān)系的,在任何地方如果需要運行某個函數(shù)都是要加括號的(如果函數(shù)運行需要參數(shù),則參數(shù)寫在括號里,如果沒有參數(shù),括號也不能省略!)。
而函數(shù)名不帶括號,則表示把函數(shù)本身作為一個對象賦值給變量或者其他對象的某個屬性,在這個過程中,函數(shù)并沒有被執(zhí)行,相當(dāng)于是把自己克隆一份再送給別人。
需要通過return的方式把要調(diào)用的函數(shù)返回給外部。
比如:
script
var?ta?=?(function(){//定義一個閉包匿名函數(shù)。
return?function(){//返回匿名函數(shù)內(nèi)部的匿名函數(shù)給ta
alert('1');
}
})();
ta();//執(zhí)行ta,彈出信息1
/script
補充:
閉包是指有權(quán)訪問另一個函數(shù)作用域中的變量的函數(shù),創(chuàng)建閉包的最常見的方式就是在一個函數(shù)內(nèi)創(chuàng)建另一個函數(shù),通過另一個函數(shù)訪問這個函數(shù)的局部變量。這種寫法就是閉包的寫法,閉包內(nèi)部的函數(shù)如果不是return方式,在外部無法獲取,無法進行調(diào)用。
擴展資料:
Function函數(shù)與Sub過程類似。但 Function函數(shù)可以有返回值。可以使用參數(shù)。如果 Function函數(shù)沒有任何參數(shù),則 Function語句必須要包含空括號。 Function函數(shù)通過函數(shù)名返回一個值。返回值的數(shù)據(jù)類型是Variant.
語法: Function 函數(shù)名 (參數(shù)1,參數(shù)2,...)
...
End Function
Function函數(shù)是包含在Function和End Function語句之間的一組VBScript語句。
參考資料來源:百度百科-Function函數(shù)
只要是被同一個html文件引用,那么他就是相通的直接使用就行,比如a.html同時引用b.js和c.js
b.js寫函數(shù)test()c.js可以直接調(diào)用test()
如果html沒有同時引用寫兩個,你可以自己在b.js中寫document.write("script src='c.js'/script");然后就可以調(diào)用函數(shù)了。
擴展資料:
創(chuàng)建函數(shù)的語法
function函數(shù)名 (var1, var2, ..., varX) {代碼... }
function函數(shù)名 (var1, var2, ..., varX) {代碼... }
var1, var2 等指的是傳入函數(shù)的變量或值。{ 和 } 定義了函數(shù)的開始和結(jié)束。
注意:無參數(shù)的函數(shù)必須在其函數(shù)名后加括號:
function函數(shù)名 () { 代碼... }
function函數(shù)名 () { 代碼... }
注意:別忘記 JavaScript 中大小寫字母的重要性。"function" 這個詞必須是小寫的,否則 JavaScript 就會出錯。另外需要注意的是,必須使用大小寫完全相同的函數(shù)名來調(diào)用函數(shù)。
參考資料來源:百度百科-JavaScript 函數(shù)
1:方法調(diào)用模式。
請注意this此時指向myobject。
/*方法調(diào)用模式*/
var myobject={
value:0,
inc:function(){
alert(this.value)
}
}
myobject.inc()
2:函數(shù)調(diào)用模式
請注意this此時指向window
/*函數(shù)調(diào)用模式*/
var add=function(a,b){
alert(this)//this被綁頂?shù)絯indow
return a+b;
}
var sum=add(3,4);
alert(sum)
3:構(gòu)造器調(diào)用模式
javascript語言精粹一書建議摒棄這中方式。因為有更好的方式。這里先不介紹。下次發(fā)表博文的時候貼出來。
會在這里加一個連接。
/*構(gòu)造器調(diào)用模式 摒棄*/
var quo=function(string){
this.status=string;
}
quo.prototype.get_status=function(){
return this.status;
}
var qq=new quo("aaa");
alert(qq.get_status());
4:apply調(diào)用模式
==我們可以來看一個更有用的apply實例。看最下面的代碼。
/*apply*/
//注意使用了上面的sum函數(shù)
//與myobject
//這中調(diào)用方式的優(yōu)點在于可以指向this指向的對象。
//apply的第一個參數(shù)就是this指針要指向的對象
var arr=[10,20];
var sum=add.apply(myobject,arr);
alert(sum);
當(dāng)一個函數(shù)被保存為對象的一個屬性時,我們稱它為一個方法。當(dāng)一個對象的方法被調(diào)用時,this被綁定到調(diào)用方法的對象。
var myObj = { name : "MT", setName : function(name){ this.name = name; }}; myObj.setName("哀木涕");console.log(myObj.name); //"哀木涕" myObj.setName("小德");console.log(myObj.name); //小德
方法可以使用this訪問自己所屬的對象,所以它能從對象中取值或?qū)ο筮M行修改。this和對象的綁定發(fā)生在方法調(diào)用的時候。這個“超級”延遲綁定(vary late binding)使得函數(shù)可以對this高度復(fù)用。通過this可以取得它們所屬對象的上下文方法稱為公共方法(public method)。
名稱欄目:javascript調(diào)用函數(shù),js函數(shù)內(nèi)調(diào)用函數(shù)
瀏覽地址:http://chinadenli.net/article1/dsedoid.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、小程序開發(fā)、標(biāo)簽優(yōu)化、定制開發(fā)、動態(tài)網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)