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

javascript 具名函數(shù)的四種調(diào)用方式 推薦第1/3頁

 更新時間:2009年07月05日 01:06:45   作者:  
看四種方式執(zhí)行結(jié)果沒有區(qū)別。但如果函數(shù)有返回值的話,用new方式調(diào)用時可能會讓你有些失望。
1、()小括號運(yùn)算符 平時最常用的就是()運(yùn)算符來調(diào)用一個函數(shù)
復(fù)制代碼 代碼如下:

//無參函數(shù)fun1
function fun1() {
alert('我被調(diào)用了');
}
fun1()

//有參函數(shù)fun2
function fun2(param) {
alert(param);
}
fun2('我被調(diào)用了')

ECMAScript3后加入給Function加入了call和apply后,就有了下面兩種
2、call
復(fù)制代碼 代碼如下:

//無參函數(shù)fun1
function fun1() {
alert('我被調(diào)用了');
}
fun1.call(null);

//有參函數(shù)fun2
function fun2(param) {
alert(param);
}
fun2.call(null,'我被調(diào)用了')

3、apply
復(fù)制代碼 代碼如下:

//無參函數(shù)fun1
function fun1() {
alert('我被調(diào)用了');
}
fun1.apply(null);

//有參函數(shù)fun2
function fun2(param) {
alert(param);
}
fun2.apply(null,['我被調(diào)用了'])

4、new (不推薦使用這種方式哦
復(fù)制代碼 代碼如下:

//無參函數(shù)fun1
function fun1() {
alert('我被調(diào)用了');
}
new fun1();


//有參函數(shù)fun2
function fun2(param) {
alert(param);
}
new fun2('我被調(diào)用了')

ok,從以上調(diào)用方式上看四種方式執(zhí)行結(jié)果沒有區(qū)別。但如果函數(shù)有返回值的話,用new方式調(diào)用時可能會讓你有些失望。
復(fù)制代碼 代碼如下:

//有返回值的函數(shù)fun
function fun() {
alert('我被調(diào)用了');
return "jack";
}

var c = new fun();
alert(c);//[object Object],為什么不是"jack"?

改成這樣,
復(fù)制代碼 代碼如下:

//有返回值的函數(shù)fun
function fun() {
alert('我被調(diào)用了');
return {name:'jack'};
}

var c = new fun();
alert(c.name);//jack,又正常返回了

好了,總結(jié)下:用new方式調(diào)用函數(shù)時。如果存在返回值,當(dāng)返回值是javascript的內(nèi)置類型(基本類型)如字符串(String),數(shù)字(Number),布爾(Boolean)等時,將不會返回該值;當(dāng)返回值是對象,函數(shù),數(shù)組等對象類型時,將返回該對象,函數(shù),數(shù)組。

當(dāng)返回值是內(nèi)置類型(基本類型)時,new fun()到底返回什么呢?下一篇將討論new方式調(diào)用的細(xì)節(jié)。

相關(guān)文章

最新評論

黄龙县| 绥阳县| 河源市| 内黄县| 吉林省| 镇巴县| 惠东县| 深圳市| 陇南市| 丰县| 蛟河市| 平南县| 普定县| 石屏县| 黔西县| 甘泉县| 绥江县| 丽水市| 屏南县| 商城县| 镇原县| 靖安县| 襄汾县| 台东市| 许昌县| 肇州县| 老河口市| 密云县| 太和县| 远安县| 离岛区| 比如县| 淅川县| 鸡东县| 游戏| 丽水市| 铜川市| 湘西| 丰城市| 鄢陵县| 安平县|