Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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 调用命名函数表达式_Javascript - Fatal编程技术网

Javascript 调用命名函数表达式

Javascript 调用命名函数表达式,javascript,Javascript,我能在没有变量名的情况下立即调用(调用)命名函数表达式吗 var bookingMask = function (ac) { .... }('.selectDates'); 如果您真正指的是“命名”函数表达式,则可以: (function bookingMask(ac) { // ... })('.selectDates'); 注意()包装它。否则,function关键字将导致解析器假定它是函数声明的开始,而您不能以这种方式直接调用函数声明 如果要在函数中使用bookingMask(

我能在没有变量名的情况下立即调用(调用)命名函数表达式吗

var bookingMask = function (ac) {
....
}('.selectDates');
如果您真正指的是“命名”函数表达式,则可以:

(function bookingMask(ac) {
    // ...
})('.selectDates');
注意
()
包装它。否则,
function
关键字将导致解析器假定它是函数声明的开始,而您不能以这种方式直接调用函数声明

如果要在函数中使用
bookingMask
(例如递归),则可能需要这样做

实例:

(功能预订掩码(ac){
console.log(“ac是:+ac);/“ac是:。选择日期”
console.log(bookingMask类型);/“函数”

})(“.selectDates”)声明函数有两种不同的方式,您可以使用或。“expression”部分意味着它要么被赋给一个值
var func=function cat(){}
,要么使用括号告诉JavaScript引擎获取其中的值并将其作为表达式进行计算。因此,立即调用的函数表达式IFFE的名称来自首先将函数转换为表达式
(function(){})
,然后调用它
(function(){})(

因此,在您的情况下,您不希望计算函数“将其分配给变量”,您希望创建赋值并立即运行函数,就像这样

(function(ac) {
// code...
})('.selectDates');
如果你觉得很冒险,你也可以使用括号以外的其他操作符来评估IFFE,例如

+function IFFE(){

}()

但我想你最想要的是那两种不?但是知道这一点很有帮助!代码中没有命名函数。你能澄清一下你的意思吗?因为你的问题的标题与实际情况相冲突question@slebetman是的,这个问题的答案反映了这个问题。您希望名称
bookinMask
在作为IFFE执行后可用吗?如果不是@T.J.Crowder,答案就是你需要的。否则,您应该澄清一下。在我看来,您需要一行语句和一个表达式。声明函数的方法只有一种,函数表达式的赋值或立即调用函数表达式(IIFE)不是函数声明。;-)如果您在IFFE中使用函数名,那么您仍然在声明函数。不,您不是。函数表达式(无论是否命名)不是函数声明。
-function IFFE(){

}()