最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript中的方法和匿名方法實例詳解

 更新時間:2015年06月13日 14:20:00   作者:IT金鐘國  
這篇文章主要介紹了Javascript中的方法和匿名方法,以實例形式較為詳細的分析了javascript中方法及匿名方法的定義與使用技巧,需要的朋友可以參考下

本文實例講述了Javascript中的方法和匿名方法。分享給大家供大家參考。具體分析如下:

Javascript方法(函數(shù))

聲明函數(shù)

以function開頭,后跟函數(shù)名,與C#、java不同,Javascript不需要聲明返回值類型、參數(shù)類型。沒有返回值就是undefined。

舉個例子更清楚: 
無參數(shù)無返回值的方法:

function f1(){
alert('這是一個方法');
}
f1();//調用方法 

無參數(shù)有返回值的方法:

function f2(){
return 100;
}
var result=f2();//聲明一個變量,接收f1()中的返回值
alert(result);//100 

有參數(shù)有返回值的方法:

function f3(n1,n2){
return n1+n2;
}
var result=f3(20,30);
alert(result);//50

注意1:

先看例子:

function f1(){
  alert('這是一個方法'); 
}
alert(f1());//彈出”這是一個方法”后,還會顯示undefined

原因:js中,變量沒有賦值,就是undefined;該栗中f1()沒有返回值,那么就是一個未知的值(undefined),這里未知的變量放入alert(),當然彈出的就是undefined

注意2:

alert(f1);//不寫括號,會將f1整個代碼以字符串形式顯示出來:
function f1(){ 
alert('這是一個方法'); 
} 

JavaScript中沒有方法重載

只調用最新定義的方法:

function f1(n1,n2){ 
alert(n1+n2); 
} 
function f1(n1,n2){ 
alert(n1-n2); 
} 
f1(10,2);//8

結論:無論在哪里調用,都只調用最新定義的方法。

注意:數(shù)字+undefined=undefined

function f1(n1,n2,n3){ 
alert(n1-n2+n3); 
} 
f1(10,2);
//NaN,因為沒有給n3傳值,n3就是undefined,
//數(shù)字加上undefined還是undefined

以上結論:Javascript中沒有方法重載

定義方法時注意:

自定義函數(shù)名不要和內置方法重名:
不要和js內置、dom內置方法重名,比如selectAll、focus等函數(shù)名不要用。

不要與系統(tǒng)函數(shù)重名。(在單擊事件中調用自己定義的focus方法,有問題。與系統(tǒng)的focus()方法重名了)

書寫規(guī)則括號注意:

一般在js中編寫大括號都是直接跟在后面

function f1(){ 
return 
{ 
age:100}; 
} 
var s=f1(); 
alert(s.age);
//undefined。s結果是undefined,undefined.age必然還是undefined

匿名方法(用的非常多)

為什么推薦用匿名方法?

1、有一個1.js中有個方法function aa(){alert{'我挺帥了'}}

2、有一個2.js中有個方法function aa(){alert{'我越來越帥了'}}

3、將1.js和2.js依次導入到index.html中,調用aa();結果顯示:我越來越帥了。

結論:2.js中的aa()方法會覆蓋1.js中的aa()

怎么辦?不再指定方法名,使用匿名方法

先看一個將匿名方法賦給變量例子:

var ff=function(n1,n2){ 
return n1+n2; 
}; 
alert(ff(20,30));//50

一行寫完匿名方法:

復制代碼 代碼如下:
(function (n1,n2){alert(n1+n2);})(9,9);

小案例:1:

var x=1; 
var y=0; 
var z=0; 
var add=function (n){n=n+1;return n}; 
y=add(x);//結果是2,先調用上面add 
add=function(n){n=n+3;return n;}; 
z=add(x);//結果是4,調用上面臨近的這個add 
alert(y+','+z);//2,4

小案例2:

function aa() 
{ 
  alert("aaa"); 
  return function(){alert("bbb");}; 
} 
alert(aa);//不寫括號,會將aa方法的整個代碼顯示出來 
alert(aa());//aaa,function(){alert("bbb");}; aaa就不解釋了,后面那一串是作為aa()的返回值顯示 
alert(aa()());//aaa,bbb,undefined 
//下面分解上面這句進行解釋 
var s=aa();//aaa 
alert(s());//s()就是function(){alert("bbb");};首先彈出bbb,其次該方法沒有返回值,故彈出undefined

希望本文所述對大家的javascript程序設計有所幫助。

相關文章

最新評論

东台市| 威信县| 长岭县| 高碑店市| 高邮市| 大新县| 项城市| 那坡县| 南昌县| 灵寿县| 鹤峰县| 札达县| 额敏县| 泸州市| 迁西县| 崇义县| 简阳市| 文山县| 洛隆县| 新竹市| 祁连县| 全椒县| 会昌县| 穆棱市| 句容市| 临漳县| 疏附县| 青河县| 开阳县| 靖州| 大新县| 洞头县| 航空| 阜康市| 定日县| 仁寿县| 大余县| 武定县| 繁昌县| 平山县| 岑溪市|