存储在变量中的函数?使用Javascript

时间:2012-06-27 19:59:40

标签: javascript

有人可以解释一下javascript中的这种表示法吗?什么是功能(d)在做什么?在这个程序中,似乎x被以下调用,但我不知道这意味着什么。提前谢谢......

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

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

2 个答案:

答案 0 :(得分:7)

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

在函数中,d = {x:9}(对象),现在当你要求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

P.S。我能找到的最佳解释!

答案 1 :(得分:1)

它被称为匿名函数。该函数将{x: number }形式的对象作为参数,并对 number 进行一些数学运算。