var add = function addnums(a,b)
{
return a+b;
}
alert("sum is " + addnums(10,20));
爲什麼我不能直接在上面的Javascript中使用addnums
? PS:我知道其他選擇,問題是爲什麼上述指定的方法不起作用。Javascript函數定義錯誤
var add = function addnums(a,b)
{
return a+b;
}
alert("sum is " + addnums(10,20));
爲什麼我不能直接在上面的Javascript中使用addnums
? PS:我知道其他選擇,問題是爲什麼上述指定的方法不起作用。Javascript函數定義錯誤
你可以。
var add = function addnums(a,b)
{
return a+b;
}
alert("sum is " + (function(a,b) { return a+b; })(10,20));
另外,您可以縮短語法:
var addnums = function(a,b) { ... }
或
function addnums(a,b) { ... }
你有一個錯誤寫函數編寫如下:
var addnums = function(a,b)
{
return a+b;
}
alert("sum is " + addnums(10,20));
:)
var add;是一個聲明。這裏add是聲明和賦值的函數,你不需要在關鍵字函數之後命名該函數,當你用這種方式定義一個函數時,變量名將採用函數名。我想你現在明白了。
除了事實上,提問者代碼的語法是正確的,他想知道爲什麼指定的函數不能通過其名稱進行調用。 – sdepold
函數表達式不需要名稱,即使命名它也不會被該名稱調用。這是匿名的。你可以說這是一個缺點,但有更多的優點而不是缺點。看看這個鏈接http://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/ –
你可以有兩個名字....? –
好問題:)我期望它能以你的方式工作。這樣你就可以通過'addnums(1,2)'和'add(1,2)'調用函數。 – sdepold
addnums()不會在外部作用域中可見,其名稱函數表達式 –