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

js 立即調(diào)用的函數(shù)表達(dá)式如何寫

 更新時間:2014年01月12日 17:39:14   作者:  
如果不需要顯示調(diào)用函數(shù), 讓這個函數(shù)在定義的時候就執(zhí)行的話, 該如何寫才可以呢,下面為大家介紹下具體的實現(xiàn)步驟,喜歡的朋友可以了解下
如果不需要顯示調(diào)用函數(shù), 讓這個函數(shù)在定義的時候就執(zhí)行的話, 該如何寫才可以呢,接下來將詳細(xì)介紹實現(xiàn)步驟,感興趣的朋友可以了解下

1.前言
函數(shù)需要先定義,后使用。 這基本上所有編程語言的一條鐵的定律。
一般狀況下, 我們需要調(diào)用一個JavaScript 函數(shù), 基本的狀況都是先定義, 然后再調(diào)用。 看一個例子
代碼如下:
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Say Hello</title>
</head>
<body>
<script>
//define function
function sayHello()
{
alert("hello");
}
//call function
sayHello();
</script>
</body>
</html>

但是如果不需要顯示調(diào)用函數(shù), 讓這個函數(shù)在定義的時候就執(zhí)行的話, 該如何寫才可以呢?

2.思考的歷程
從以上的例子來看,聰明的你結(jié)合以上的使用狀況可能會想:
===》既然調(diào)用的時候是在函數(shù)名后面加上一對 是否在function 定義的后面加上一對大括號是否就可以執(zhí)行了呢? 像以下這樣:
代碼如下:
復(fù)制代碼 代碼如下:

function sayHello()
{
alert("hello");
}();

不幸的是,以上的寫法會報出js 的語法錯誤。
因為Javascript 的解析器在解析器解析全局的function或者function內(nèi)部function關(guān)鍵字的時候, 默認(rèn)會把大括號解析成function聲明,而不是function表達(dá)式。

也就是說, 會把最后的一對大括號默認(rèn)解析成一個缺少名字的function,并且拋出一個語法錯誤信息,因為function聲明需要一個名字。

===》 你可能又會想, 如果我在大括號中傳入?yún)?shù)是否就會解析成表達(dá)式了呢?
代碼如下:
復(fù)制代碼 代碼如下:

function sayHello()
{
alert("hello");
}(1);

的確, 錯誤是沒有了。 但是以上的寫法等同于以下寫法的效果
代碼如下:
復(fù)制代碼 代碼如下:

function sayHello()
{
alert("hello");
};
(1);

這兩句完全沒有關(guān)系, 函數(shù)還是不會執(zhí)行

3.正確的寫法
對于JavaScript 來說,括弧()里面不能包含語句,所以在這一點上,解析器在解析function關(guān)鍵字的時候,會將相應(yīng)的代碼解析成function表達(dá)式,而不是function聲明所以,只要將大括號將代碼(包括函數(shù)部分和在后面加上一對大括號)全部括起來就可以了。
代碼如下:
復(fù)制代碼 代碼如下:

(function sayHello()
{
alert("hello");
}());

還有一種寫法也可以, 就是將后面的大括號移出來, as
代碼如下:
復(fù)制代碼 代碼如下:

(function sayHello()
{
alert("hello");
})();

推薦是使用第一種方式。
但是目前很多比較好的js library 使用的都是第二種方式。
比如: web 圖形繪制的: git , draw2d ,....

相關(guān)文章

  • JavaScript獲取radio選中值的幾種常用方法小結(jié)

    JavaScript獲取radio選中值的幾種常用方法小結(jié)

    這篇文章主要介紹了JavaScript獲取radio選中值的幾種常用方法,結(jié)合實例形式總結(jié)分析了javascript獲取radio選中值的常見實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2023-06-06
  • 詳解CocosCreator MVC架構(gòu)

    詳解CocosCreator MVC架構(gòu)

    這篇文章主要介紹了CocosCreator MVC架構(gòu),同學(xué)們在制作游戲過程中,盡量使用一些架構(gòu),會避免很多問題
    2021-04-04
  • 微信小程序canvas開發(fā)水果老虎機的思路詳解

    微信小程序canvas開發(fā)水果老虎機的思路詳解

    這篇文章主要介紹了微信小程序canvas開發(fā)水果老虎機的思路,本文通過思路代碼分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Sourcemap源代碼映射詳細(xì)介紹

    Sourcemap源代碼映射詳細(xì)介紹

    這篇文章主要為大家介紹了Sourcemap源代碼映射介紹及示例詳解解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-04-04
  • javascript學(xué)習(xí)筆記之10個原生技巧

    javascript學(xué)習(xí)筆記之10個原生技巧

    首先在這里要非常感謝無私分享作品的網(wǎng)友們,這些代碼片段主要由網(wǎng)友們平時分享的作品代碼里面和經(jīng)常去逛網(wǎng)站然后查看源文件收集到的。把平時網(wǎng)站上常用的一些實用功能代碼片段通通收集起來,方便網(wǎng)友們學(xué)習(xí)使用,利用好的話可以加快網(wǎng)友們的開發(fā)速度,提高工作效率。
    2014-05-05
  • js獲取及判斷鍵盤按鍵的方法

    js獲取及判斷鍵盤按鍵的方法

    這篇文章主要介紹了js獲取及判斷鍵盤按鍵的方法,涉及JavaScript鍵盤事件的獲取及鍵值的判定技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • 微信小程序map地圖使用方法詳解

    微信小程序map地圖使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序map地圖使用的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 微信小程序去除左上角返回鍵的實現(xiàn)方法

    微信小程序去除左上角返回鍵的實現(xiàn)方法

    這篇文章主要介紹了微信小程序去除左上角返回鍵的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • js微信應(yīng)用場景之微信音樂相冊案例分享

    js微信應(yīng)用場景之微信音樂相冊案例分享

    這篇文章主要為大家分享了js微信應(yīng)用場景之微信音樂相冊案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 關(guān)于layui表單中按鈕自動提交的解決方法

    關(guān)于layui表單中按鈕自動提交的解決方法

    今天小編就為大家分享一篇關(guān)于layui表單中按鈕自動提交的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09

最新評論

米泉市| 高唐县| 南漳县| 扬中市| 绥宁县| 霍城县| 栖霞市| 祁东县| 寻乌县| 盘山县| 奇台县| 武强县| 吉木萨尔县| 宁德市| 高雄市| 绥阳县| 肇州县| 油尖旺区| 西峡县| 桐乡市| 呼图壁县| 仪陇县| 四平市| 宜良县| 枣庄市| 金昌市| 凤台县| 道孚县| 北京市| 南康市| 岑巩县| 阿巴嘎旗| 开阳县| 呼和浩特市| 阿拉善盟| 塔河县| 麻阳| 东源县| 吴堡县| 河北省| 上栗县|