JavaScript 函式呼叫時帶括號和不帶括號的區別
function fun() {
return 1;
}
var a = fun;
var b = fun();
JavaScript中我們把下面的程式碼叫做函式:
function fun() {
return 1;
}
函式是一種叫做function引用型別的例項,因此函式是一個物件。物件是儲存在記憶體中的,函式名則是指向這個物件的指標。
var a = fun 表示把函式名fun這個指標拷貝一份給變數a,但是這不是指函式本身被複制了一份。
即:a是fun函式,b是1
如果函式名後面加上圓括號就表示立即呼叫(執行)這個函式裡面的程式碼(花括號部分的程式碼)。
不加括號的,都是把函式名稱作為函式的指標,一個函式的名稱就是這個函式的指標,此時不是得到函式的結果,因為不會執行函式體程式碼。它只是傳遞了函式體所在的地址位置,在需要的時候好找到函式體去執行。
例如:
window.onload=init;
init函式並不會在這行程式碼時就執行,瀏覽器載入文件時這句話會被載入,會被告知文件載入完要執行哪個函式,但實際上沒有當時就執行,等到整個文件載入完成之後才會通過init這個指標去執行init()。
小注:本文部分內容參考:
https://www.zhihu.com/question/31044040
http://blog.csdn.net/yyx19941129/article/details/49642515
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- c++物件建立帶括號與無括號的區別C++物件
- JavaScript函式多個小括號連續呼叫JavaScript函式
- 理解正規表示式中的括號 (),方括號 [] 和大括號 {}
- JSON 字串中的中括號和大括號區別詳解JSON字串
- 使用關聯模型的鏈式呼叫時-有無括號的區別模型
- JavaScript中圓括號()和方括號[]的一個特殊用法JavaScript
- JavaScript匿名函式要外面巢狀小括號原因JavaScript函式巢狀
- JS 中函式名後面加與不加括號的區別JS函式
- 物件點查詢和中括號查詢的區別物件
- 括號畫家
- 【棧】括號匹配
- javascript 判斷括號是否配對。JavaScript
- JavaScript 小括號()分組運算子JavaScript
- 區分import 什麼時候使用 花括號{ }Import
- (譯) javascript中的物件,方括號和演算法JavaScript物件演算法
- Matlab中的括號()[]{}Matlab
- 20. 有效的括號
- Shell 括號總結
- Swift之花括號Swift
- 最長有效括號
- 【題解】括號序列
- 正則中括號點符號符號
- 正規表示式中括號[]字元類字元
- 正規表示式 中括號[] 字元類字元
- python定義類不寫括號嗎Python
- JavaScript 解構賦值小括號的應用JavaScript賦值
- JavaScript取出字串中括號裡的內容JavaScript字串
- 正規表示式中test、exec、match的區別介紹及括號的用法
- [leetcode]有效的括號LeetCode
- [PHP字串]②--花括號{}的作用PHP字串
- 每日一題: 有效括號每日一題
- js 物件使用點和中括號存取屬性區別是什麼JS物件
- POJ 2955-Brackets(括號匹配-區間DP)Racket
- Python中各種括號的區別、用途及使用方法Python
- [CareerCup] 9.11 Parenthesize the Expression 表示式加括號Express
- 萬用字元 and [] 中括號的用法字元
- ACM 括號配對問題ACM
- 22. 括號生成-c++C++