function(),括弧裡的參數問題

我是寫程式新手,想請問一下帶參數的問題:

一般寫一個類似下面的function:

function calculate(aa){ var answer=1+aa; alert(answer); };

然後直接帶入參數呼叫這個函式:calculate(1); 就會執行1+1,

但是呢…

常常在看書或是看一些範例會有那種不帶入參數就會執行的函式,怎麼樣都看不懂…例如下面的jQuery程式:

$(function(){

$("*", document.body).click(function(e) {

e.stopPropagation();

var domEl = $(this).get(0).tagName;

$("span").text("滑鼠點了:" + domEl);

});

});

e自己就在程式裡呼叫自己然後使用stopPropagation()方法…這個語法到底是怎麼解釋??

或是像ActionScript3裡也有類似的東西,到底是那裡有帶入什麼東西到()裡??:

function LINKLINK(event:MouseEvent):void{

var myLINK:URLRequest = new URLRequest("http://www.flycan.com.tw/%22);

navigateToURL(myLINK);

}

MY_btn.addEventListener(MouseEvent.CLICK, LINKLINK);

還有看過一些更莫銘其妙的參數用法一時也找不到範例…

有沒有人願意詳細告訴我這個語法的問題,十分感謝。

2 個解答

評分
  • 1 0 年前
    最佳解答

    example

    $("*", document.body).click(function(){

    alert(arguments.length)

    })

    alert = 1

    代表jquery會自動傳一個變數到你給他的function裡阿,

    只是你自己決定接不接

    假設今天有一個方法

    function aaa(x,y,z){

    //arguments[0] == x

    //arguments[1] == y

    //arguments[2] == z

    }

    aaa(1,2,3)

    arguments.length = 3

    arguments[0] = 1

    arguments[1] = 2

    arguments[2] = 3

    aaa()

    arguments.length = 0

    2011-01-08 00:27:29 補充:

    如你的範例改成下面

    $(function(){

    $("*", document.body).click(function() {

    e = arguments[0];

    e.stopPropagation();

    var domEl = $(this).get(0).tagName;

    $("span").text("滑鼠點了:" + domEl);

    });

    });

    是相同意思的

    jquery在buind function時他就是有傳一個變數給你,只是你自己要不要用一個參數去接罷了

  • 1 0 年前

    這是Javascript的基本範圍。

    function的寫法及使用方法。

    您所寫的function因為強調需要帶入參數,在呼叫的時候當然要給予參數,不然程式會因缺乏參數,所以運行的結果有可能錯誤或不如預期。

    function calculate(aa){

    var answer=1+aa;

    alert(answer);

    };

    這個範例很明顯的告訴使用者,輸出的結果會視aa的值不同而有所差異。

    倘若您的function 只是寫個簡單的內容,如:

    function simple(){

    alert("示範!");

    };

    呼叫時便僅需填寫simple() ,就會達到呼叫的目的了。

    至於您另外示範的那個jQuery,因為整個程式運作需要知道使用者到底點擊了什麼物件,當然會需要參數。

    參考資料: 自己
還有問題?馬上發問,尋求解答。