Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 语法someFunction(abc)(d)是什么意思?_Javascript - Fatal编程技术网

Javascript 语法someFunction(abc)(d)是什么意思?

Javascript 语法someFunction(abc)(d)是什么意思?,javascript,Javascript,如何解释此代码: var element = $compile('<p>{{total}}</p>')(scope); 我不知道一组大括号在Javascript中是什么意思。someFunction(abc)返回一个函数。(d)立即调用返回的函数,并将参数d传递给它 从概念上讲,someFunction(abc)可以定义如下。这里,someFunction(abc)返回一个接受参数的函数(d)。它会提醒abc+d的总和 function someFunction(a

如何解释此代码:

  var element = $compile('<p>{{total}}</p>')(scope);
我不知道一组大括号在Javascript中是什么意思。

someFunction(abc)
返回一个函数。
(d)
立即调用返回的函数,并将参数
d
传递给它

从概念上讲,
someFunction(abc)
可以定义如下。这里,
someFunction(abc)
返回一个接受参数的函数(
d
)。它会提醒abc+d的总和

function someFunction(abc) {
    return function (d) {
        alert(abc + d);
    };
}

var adder = someFunction(10);

adder(2); // 12
adder(3); // 13

// ... or
someFunction(10)(2); // 12
someFunction(10)(3); // 13
在这里试验


在您的特定情况下,返回一个模板函数。您将立即调用该模板函数,并将
范围
变量传递给它。

someFunction(abc)
返回一个函数。
(d)
立即调用返回的函数,并将参数
d
传递给它

从概念上讲,
someFunction(abc)
可以定义如下。这里,
someFunction(abc)
返回一个接受参数的函数(
d
)。它会提醒abc+d的总和

function someFunction(abc) {
    return function (d) {
        alert(abc + d);
    };
}

var adder = someFunction(10);

adder(2); // 12
adder(3); // 13

// ... or
someFunction(10)(2); // 12
someFunction(10)(3); // 13
在这里试验



在您的特定情况下,返回一个模板函数。您立即调用该模板函数,将
范围
变量传递给它。

它只需调用从someFunction返回的(函数)上的参数d

它只需调用从someFunction返回的(函数)上的参数d

函数是一阶公民,也就是说,您可以像对待其他对象一样对待它们,将它们传递给其他函数,并从其他函数返回它们。也许这会澄清

var fn1 = function(a) {
    var fn2 = function(b) {
        return a+b;
    };
    return fn2;
};
现在


发生的情况是,
fn1
接受一个参数
a
,并返回一个函数,该函数将把传递的参数
b
添加到
a
。我的解释不好,但我希望它是清楚的。

函数是一阶公民,也就是说,您可以像对待其他对象一样对待它们,将它们传递给其他函数,然后从其他函数返回它们。也许这会澄清

var fn1 = function(a) {
    var fn2 = function(b) {
        return a+b;
    };
    return fn2;
};
function makeFunc() {
    return function (foo) {
        alert(foo);
    };
}

var func = makeFunc();
func('hello');
现在

发生的情况是,
fn1
接受一个参数
a
,并返回一个函数,该函数将把传递的参数
b
添加到
a
。我的解释不好,但我希望它是清楚的

function makeFunc() {
    return function (foo) {
        alert(foo);
    };
}

var func = makeFunc();
func('hello');
或者,简写为:

makeFunc()('hello');
$compile
返回一个函数,然后调用该函数

或者,简写为:

makeFunc()('hello');

$compile
返回一个函数,然后调用该函数。

可能重复@Ken这是一个完全不同的主题。。。!可能重复@Ken这是一个完全不同的主题。。。!因此,如果someFunction返回null,就会生成一个错误。不确定使用这种语法是否是一种好的做法。@AndroidDev:虽然从技术上讲是正确的,但通过执行
var foo=someFunction(abc)并不能获得任何额外的安全性;傅(丁),。您必须检查每个返回值是否都是一个函数<代码>变量foo=someFunction(abc);如果(typeof foo=='function'){foo(d);}
,这太过分了。@AndroidDev这个参数实际上是无效的,因为如果你不知道函数返回什么,那么你最终还是会出错的。您可以进行检查,但随后会编写大量不必要的代码IMHO(除非您事先知道函数可能返回
null
,这是一种糟糕的做法IMHO:从一个函数返回不同类型的对象)。@freakish。如果它是第三方库,并且您不一定能保证非空值,我不会使用这种语法。@AndroidDev:这完全取决于具体情况。如果您知道函数总是返回一个函数(如
$compile
),那么使用它就没有什么害处。正如我在前面的评论中所说,它直接替代了
var foo=someFunction(abc);傅(丁),var foo=someFunction(abc)并不能获得任何额外的安全性;傅(丁),。您必须检查每个返回值是否都是一个函数<代码>变量foo=someFunction(abc);如果(typeof foo=='function'){foo(d);}
,这太过分了。@AndroidDev这个参数实际上是无效的,因为如果你不知道函数返回什么,那么你最终还是会出错的。您可以进行检查,但随后会编写大量不必要的代码IMHO(除非您事先知道函数可能返回
null
,这是一种糟糕的做法IMHO:从一个函数返回不同类型的对象)。@freakish。如果它是第三方库,并且您不一定能保证非空值,我不会使用这种语法。@AndroidDev:这完全取决于具体情况。如果您知道函数总是返回一个函数(如
$compile
),那么使用它就没有什么害处。正如我在前面的评论中所说,它直接替代了
var foo=someFunction(abc);傅(丁),