2013-01-08 40 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

相关问题