JavaScript中的函數的兩種定義方式和函數變數賦值

來源:互聯網
上載者:User

複製代碼 代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
/*I總結:
1.函數名可以做變數使用,可以賦值,可以傳值
2.函數名當參數,傳遞給另一個函數
*/
//==================js中函數的兩種定義方式和函數變數賦值================
//在javascript中定義一個函數就可以理解成定義了一個變數
//js中的變數時弱類型的哦。
//----------1
//function add1(){
//alert("add1");
//}
//那麼函數作為一個變數,就可以作為參數,是add1指向了這個代碼塊在記憶體中儲存的首地址
var add1=new Function("alert('add1');");//--------2
//以上1,2的寫法是完全等價的,是js中聲明函數的兩種方式
//實際上,是add1指向了這段函數代碼塊,在記憶體中儲存的首地址。
//至於具體如何儲存,堆或棧,這裡不多做研究了。

var addtt=add1;//函數名當變數使用,可以賦值,也可以傳值
//addtt 指向了函數體
addtt();
//==================js中函數的兩種定義方式和函數變數賦值================
//==================將函數變數作為參數傳遞===========================
//基本格式:
function add2(fun){
//將函數名作為參數傳遞
fun();
}
add2(add1);

//--------------------------------------
//函數名作參數使用,同時接受參數的情況示範的啦
function add(a){
return n+10;
}
//a:數字,fun:函數
function addTest(a,fun){
var t=fun(a);
return t;
}
var tt=addTest(22,add);//這樣的寫法也是ok的啦
alert(tt);
//==================將函數變數作為參數傳遞===========================
</script>
</head>
<body>

</body>
</html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.