我目前正在学习和学习JavaScript,我刚刚找到了一个使用此'()();'的简单代码。这叫什么,没有找到太多有关它的信息,它是什么以及如何使用,这是我发现的代码:
$collection->aggregate(
[
{
'$project' =>
{
'alteredExecutionTime' =>
{
'$subtract' => ['$executiontime', 5 * 60 * 1000]
}
}
}
]
);
如果有些错误,英语不是我的母语。
答案 0 :(得分:3)
括号本身是分组运算符。他们将表达式分组以控制评估的顺序或优先级。您可以read MDN here来做。
// example // is the same as
(obj.go)(); obj.go();
(method = obj.go)(); method = obj.go; method();
(obj.go || obj.stop)(); // calling go or stop after assinging to a temp variable
答案 1 :(得分:1)
该段代码演示了如何在函数执行内容(在本例中为this
)中绑定go
。它表明仅在方法周围加上括号不会改变该行为:this
仍然绑定到obj
。
只要括号括起涉及运算符的表达式,情况就会发生变化,并且从表达式中得到 results 的方法将被调用,而没有特定的{{1 }}绑定:默认设置(this
)。
另一种变体如下:
undefined
这里是逗号运算符的开始,所以我们处于表达式的情况:(0,obj.go)();
在方法调用中不再绑定到this
。
答案 2 :(得分:0)
它仅控制执行的顺序。您也可以这样编写所有内容,以使其更加清晰:
// (obj.go)();
obj.go();
// (method = obj.go)();
method = obj.go;
method();
// (obj.go || obj.stop)();
var method = obj.go || obj.stop;
method();