2013-01-08 91 views
1

我只是試圖讓這裏看到更好的理解/函數參數 在功能確認:函數的參數以及它們是如何工作

function newFunction(data, status){ 

將功能特別適用於數據和狀態變量?

我不太明白這些論點是如何工作的。

+4

我認爲你需要更多的上下文..沒有jQuery的在你的問題,但JavaScript函數的工作就像子程序大多數編程語言做。 –

+0

這聽起來像更多的一般編程問題。沒有什麼特別的JavaScript或jQuery在這裏... – elclanrs

+1

@elclanrs它更像是一個「沒有讀過教程/書」的情況..(但不是,這不是一般的編程,因爲這是非常基本的,然後有一些JavaScript-具體的規則超出了任何形式的「統一」的功能應用操作本身可以有很大的不同) – 2013-01-08 23:42:33

回答

3

基本場景

當定義了一個函數,該()區域用於輸入。這些輸入被映射到在被髮送的數據。

function newFunction(data, status){ 
} 
newFunction(1,2); 

在這種情況下,data將被分配的1的值,並status將爲的newFunction範圍被分配的2值。

Missmatched輸入

然而,它並不總是直接映射。如果發送的參數較少,則未分配的輸入變量將變爲undefined

function newFunction(data, status){ 
} 
newFunction(1); 

在這種情況下,data將被分配的1的值,並status將爲的newFunction範圍被分配的undefined值。

參數對象

內部的newFunction範圍,也有訪問像稱爲arguments對象陣列。

function newFunction(data, status) 
{ 
var args = arguments; 
} 
newFunction(1); 

在這種情況下,變量args將舉行arguments對象。在那裏你可以檢查args.length看到只有1個參數被髮送。 args[0]會給你這個參數值,在這種情況下是1

功能對象

的函數可以被製成與new關鍵字的對象。通過在函數上使用new關鍵字,可以創建一個Function對象。一旦函數對象被創建,this可能被用來引用當前的函數對象而不是全局窗口。

function newFunction(data,status){ 
if(this instanceof newFunction){ 
    //use as a Function object 
    this.data = data; 
}else{ 
    //use as a normal function 
} 
} 
var myNewFunction = new newFunction(1); 

在這種情況下,myNewFunction現在持有的功能對象的引用,並且可以作爲通過點標記或索引的對象進行訪問。 myNewFunction["data"]myNewFunction.data現在無論是持有1

1

這意味着功能接受datastatus參數。程序員調用功能可按(你)需要調用函數時提供的參數

讓我們看一個簡單的例子(也稱爲參數):

function add(x, y) { 
    return x + y; 
} 

函數這裏有兩個數字,將它們加在一起,然後返回結果。現在,作爲程序員,您可以隨時添加兩個數字,而無需複製功能,或者在需要應用程序執行相同功能時複製/粘貼。

最重要的是,您使用的另一位程序員可以一起添加兩個數字,而不用擔心如何操作,他們可以調用您的函數。

編輯:調用函數的工作原理如下

var num1 = 10; 
var num2 = 15; 
var z = add(num1, num2); //z = 25 
+2

......或者它應該這樣做。它不必如果它不想! –

+0

@RobertGrenier所以這些變量是在這裏創建的,目前尚未定義? –

+0

@pst所以基本上這個步驟只是創建一個變量,然後我可以在函數內使用/定義它,是的? –

0
function newFunction(data, status){ ... function code ... } 

這是一個名爲newFunction函數的定義的Javascript的價值。 您可以將參數傳遞給函數。這些變量是數字或字符串,函數應該用來執行某些操作。 當然,函數行爲/輸出取決於你給它的參數。

http://www.quirksmode.org/js/function.html

相關問題