理順 JavaScript (17) – 函數

來源:互聯網
上載者:User
函數的名稱
function fun() {  alert(123);}fun();       //123f = function() {  alert(123);}f();         //123msg = alert;msg(123);    //123

函數的傳回值

function fun() {  var num = 1;  return num; //函數可以沒有 return; 如果有 之後的代碼不會被執行  num++;  return num;}var r = fun();alert(r); //1

函數的既定參數和實際參數

/* 預定參數的個數 */function fun(a, b, c, d) {  alert(fun.length);              /* 預定參數個數 */  alert(arguments.callee.length); /* 也可以這樣, arguments.callee 標識當前函數 */}fun(11, 22); //4 / 4/* 實際參數的個數、遍曆參數 */function fun(a, b, c, d) {  alert(arguments.length); //實際參數個數    for (var i=0; i 

this 表示調用函數的對象

<div name='MyDiv' onclick="alert(this.name);">aaaaaa</div> //點擊會顯示: MyDiv

caller 表示調用該函數的函數

function fun1() {  return arguments.callee.caller.arguments[0]; //或寫作: fun1.caller.arguments[0];}function fun2() {  alert(fun1());}fun2(11, 22); //11

call、apply

function sum(a, b, c) {  alert(a+b+c);}sum(1, 2, 3);               //6sum.call(null, 1, 2, 3);    //6sum.apply(null, [1, 2, 3]); //6//call 與 apply 都是調用函數的方式, 這裡 null 以外的是函數的參數; apply 需要把參數寫在數組裡; 其目的就是重設第一個參數.//call 與 apply 的第一個參數表示調用該函數的對象, null 表示無調用對象; 譬如:function msg(s) {  alert(s + ' ' + this.toString());}var str = 'ABC';var num = 123;msg.call(str, 'Hi'); //Hi ABCmsg.call(num, 'Hi'); //Hi 123

使用 Function 類建立函數

var fun = new Function('alert(123)');fun(); //123var fun = new Function('a,b', 'return a+b');alert(fun(11, 22)); //33

一個關於閉包的小例子

function fun(x) {  return function(y) {return x+y;}}var a,b,c;a = fun(1);b = fun(2);c = fun(3);alert(a(1)); //2alert(b(2)); //4alert(c(3)); //6

eval : 這是一個全域函數, 它執行字串中的 JS 代碼並返回結果

var str = '((1 + 2) * 3 - 1) / 4';alert(eval(str)); //2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.