JS中關於函式呼叫的問題
阿新 • • 發佈:2019-02-15
在js中,可以直接呼叫函式,也可以將函式名賦值給變數進行呼叫,他們的方式有所不同。
- 直接呼叫
直接呼叫比較簡單,如
function output(message){
window.alert(message);
}
output("hello ,world");
這就屬於直接呼叫顯示是:hello world
2 賦值呼叫
var a=output;
a("hello,world");
這相當於a是一個指標,指向了函式output(message);要注意引數。
輸出是:hello,world
但是需要注意的是,如果直接輸出變數名,則會得到函式體的輸出。
window.alert(a);//或者直接輸出變數名window.alert(output);
在這裡還有一個有趣的事情,如果是這樣:
var a=output;
window.alert(a("hello,world"));
那麼就會出現先是一個視窗彈出 hello world
確定以後又有一個窗口出來是:undefined
這說明首先是a呼叫了函式output,第一個視窗是函式中的alert彈出來的,然後是window.alert(a(“hello,world”));執行,結果是undefined,說明這種方法不正確,這也在某種程度上說明了JS是解釋性的指令碼語言。
3. 返回值呼叫
對於有返回值的函式來說,可以用這種辦法:
var b=("abc");
window.alert(b);
“`
這樣的話會將返回值賦給變數b,輸出是:abc
如果函式沒有返回值,就會輸出 undefined。
在應用過程中,最好還是使用直接呼叫比較符合習慣,更少出錯。