首頁 web前端 js教程 js 在定義的時候立即執行的函數表達式(function)寫法_javascript技巧

js 在定義的時候立即執行的函數表達式(function)寫法_javascript技巧

May 16, 2016 pm 05:43 PM
function

1.前言
函數需要先定義,然後再使用。 這基本上所有程式語言的一條鐵的定律。
一般狀況下, 我們需要呼叫一個JavaScript 函數, 基本的狀況都是先定義, 然後再呼叫。 看一個例子
複製程式碼 程式碼如下:






Say Hello


<script> <BR>//define function <BR>function sayHello() <BR>{ <BR>alert("hello"); <BR> } <BR>//call function <BR>sayHello(); <BR></script>



但如果不需要顯示呼叫函數, 讓這個函數在定義的時候就執行的話, 如何寫才可以呢?
2.思考的歷程
從以上的例子來看,聰明的你結合以上的使用狀況可能會想:
===》既然調用的時候是在函數名後面加上一對是否在function 定義的後面加上一對大括號是否就可以執行了呢? 像以下這樣:
複製程式碼 程式碼如下:

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

不幸的是,以上的寫法會報出js 的語法錯誤。
因為Javascript 的解析器在解析器解析全域的function或function內部function關鍵字的時候, 預設會把大括號解析成function聲明,而不是function表達式。

也就是說, 會把最後的一對大括號預設解析成一個缺少名字的function,並且拋出一個語法錯誤訊息,因為function宣告需要一個名字。

===》 你可能又會想, 如果我在大括號中傳入參數是否就會解析成表達式了呢?

複製程式碼 程式碼如下:
function sayHello()


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

的確, 錯誤是沒有了。 但以上的寫法等同於以下寫法的效果複製程式碼
程式碼如下:


程式碼如下:

{
alert("hello");
};
(1);
這兩句完全沒有關係,函數還是不會執行
複製程式碼


程式碼如下:


(function sayHello()
{
(function sayHello()
alert("hello");
複製程式碼


程式碼如下:

(function sayHello()
{
alert("hello"); })();
推薦是使用第一種方式。 但是目前很多比較好的js library 使用的都是第二種方式。 例如: web 圖形繪製的: git , draw2d ,....
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
function是什麼意思 function是什麼意思 Aug 04, 2023 am 10:33 AM

function是函數的意思,是一段具有特定功能的可重複使用的程式碼區塊,是程式的基本組成單元之一,可以接受輸入參數,執行特定的操作,並傳回結果,其目的是封裝一段可重複使用的程式碼,提高程式碼的可重複使用性和可維護性。

'enumerate()'函數在Python中的用途是什麼? 'enumerate()'函數在Python中的用途是什麼? Sep 01, 2023 am 11:29 AM

在本文中,我們將了解enumerate()函數以及Python中「enumerate()」函數的用途。什麼是enumerate()函數? Python的enumerate()函數接受資料集合作為參數並傳回一個枚舉物件。枚舉物件以鍵值對的形式傳回。 key是每個item對應的索引,value是items。語法enumerate(iterable,start)參數iterable-傳入的資料集合可以作為枚舉物件傳回,稱為iterablestart-顧名思義,枚舉物件的起始索引由start定義。如果我們忽

MySQL.proc表的作用與功能詳解 MySQL.proc表的作用與功能詳解 Mar 16, 2024 am 09:03 AM

MySQL.proc表的功能與功能詳解MySQL是一種流行的關係型資料庫管理系統,開發者在使用MySQL時常常會涉及到預存程序(StoredProcedure)的建立與管理。而MySQL.proc表則是一個非常重要的系統表,它儲存了資料庫中所有的預存程序的相關信息,包括預存程序的名稱、定義、參數等。在本文中,我們將詳細解釋MySQL.proc表的作用與功能

Vue.use函數的用法與作用 Vue.use函數的用法與作用 Jul 24, 2023 pm 06:09 PM

Vue.use函數的用法和作用Vue是一款流行的前端框架,它提供了許多有用的功能和功能。其中之一就是Vue.use函數,它可以讓我們在Vue應用中使用插件。本文將介紹Vue.use函數的用法和作用,並且提供一些程式碼範例。 Vue.use函數的基本用法非常簡單,只需在Vue實例化之前呼叫它,並傳入要使用的插件作為參數。以下是一個簡單的範例://引入並使用插件

在PHP中的clearstatcache()函數 在PHP中的clearstatcache()函數 Sep 07, 2023 am 09:33 AM

clearstatcache()函數用於清除檔案狀態快取。 PHP快取以下函數傳回的資訊−stat()lstat()file_exists()is_writable()is_readable()is_executable()is_file()is_dir()filegroup()fileowner()filesize()filetype()fileperms()這樣做是為了提供更好的性能。語法voidclearstatecache()參數NA傳回值clearstatcache(

在PHP中的file_exists()函數 在PHP中的file_exists()函數 Sep 14, 2023 am 08:29 AM

file_exists方法檢查檔案或目錄是否存在。它接受要檢查的檔案或目錄的路徑作為參數。以下是它的用途-當您需要在處理之前知道文件是否存在時,它非常有用。這樣,在建立新檔案時使用此函數即可知道該檔案是否已存在。語法file_exists($file_path)參數file_path-設定要檢查是否存在的檔案或目錄的路徑。必需。返回file_exists()方法返回。如果檔案或目錄存在,則傳回TrueFalse,如果檔案或目錄不存在範例讓我們看一個檢查「candidate.txt」檔案和即使文件

如何在PHP中使用SOA函數 如何在PHP中使用SOA函數 May 18, 2023 pm 01:10 PM

隨著網際網路的發展,SOA(服務導向的架構)成為了當今企業級系統中的重要的技術架構。 SOA架構中的服務可以重複使用、重組和擴展,同時也能夠簡化系統開發和維護的過程。 PHP作為一種被廣泛使用的Web程式語言,也提供了一些實作SOA的函數函式庫。接下來,我們將詳細介紹如何在PHP中使用SOA函數。一、SOA的基本概念SOA是分散式系統開發的思想與架構

js函數function用法是什麼 js函數function用法是什麼 Oct 07, 2023 am 11:25 AM

js函數function用法有:1、宣告函數;2、呼叫函數;3、函數參數;4、函數回傳值;5、匿名函數;6、函數為參數;7、函數作用域;8、遞歸函數。

See all articles