2012-06-27 118 views
3

有人可以请解释这个符号是在JavaScript中吗?功能(d)在做什么?在这个程序中,似乎x被以下方法调用,但我不知道这是什么意思。在此先感谢...存储在变量中的函数? Javascript

x = function(d) { return d.x * width/mx; }; 

// later.... 
x({x: .9}); // call 
+0

语法无效,最后一行缺少')'。有关函数语法,请查看MDN:https://developer.mozilla.org/en/JavaScript/Reference/Operators/function。 –

回答

7

.9是传递给函数的对象(d)的属性x的值。

在函数d = {x:9}(object)中,现在当您要求d属性(x)值(使用DOT符号)时,它返回属性x的值。

因此d.x返回0.9!所以你会问我,如何将属性的值传递给函数-X,这就是我们在做这件事时所做的 - > x(objectBeingSent); objectBeingSent是{x:.9}。

匿名函数是在 运行时动态声明的函数。它们被称为匿名函数,因为它们不会以与正常函数相同的方式给出 的名称。

使用函数运算符声明匿名函数。你可以使用函数运算符 来创建一个新的函数,无论它在哪里有效, 来表达一个表达式。例如,您可以声明一个新函数作为函数调用的参数或指定另一个对象的属性。

函数运算符返回对刚刚创建的函数 的引用。然后该函数可以分配给一个变量,通过 作为参数或从另一个函数返回。这可能是 ,因为函数是javascript中的第一类对象。

这里就是一个函数以常规方式 使用函数语句声明的例子:

function eatCake(){ 
    alert("So delicious and moist"); 
} 
eatCake(); 

这里的地方同样的功能使用功能操作动态 声明的例子:

var eatCakeAnon = function(){ 
    alert("So delicious and moist"); 
}; 
eatCakeAnon(); 

请看第二个函数的右括号后面的分号吗? }; 在语句后使用分号。这是一种说法:

var eatCakeAnon = function(){ 
     alert("So delicious and moist"); 
    }; 

Source

附:最好的解释,我可以找到!

+0

好的,但你能解释一下上面的方法是如何被调用的吗?什么是用x:.9做的参数?谢谢! – Apollo

+0

@EswarRajeshPinapala不需要第一个例子中的第二个分号 – Mageek

+0

.9是传递给函数的对象(d)的属性。 在函数d = {x:9}(object)中,现在当您要求名为x的属性(使用DOT表示法)时,它返回属性x。 因此d.x返回0.9! –

1

它被称为匿名函数。该函数以{x:number}的形式作为参数,并在号码上执行一些数学运算。