为什么我的JS代码没有'不起作用

Why is my JS code doesn't work?

本文关键字:不起作用 我的 JS 代码 为什么      更新时间:2023-09-26

我正在尝试的只是通过立即调用函数在控制台中打印一条消息。以下是示例:

function (a){
    return function (a){
        console.log('msg' + a);
    }
}(3);

PS

请不要评判我太快,我才刚开始学习JavaScript。

用括号括起来,使代码具有有效的javascript语法。我猜你想声明一些匿名函数。这是如何做到的:

(function() {
    return function(a) {
        console.log('msg' + a);
    }
})()(3);

或者你的意思是:

(function someFunc(a) {
    console.log('msg' + a);
})(3);

在第一种情况下,您的匿名作用域返回一个函数,因此在将任何参数传递给它之前,您需要首先调用它

在第二种情况下,它只是一个通过直接传递参数立即声明和执行的匿名函数。

如果调用自调用匿名函数,则需要封装它:

(function (a){
    return function (a){
        console.log('msg' + a);
    }
}(3));

然后,当你有一个闭包时,值不会传递给返回的函数,所以尝试一下,你会看到:

(function (a){
    return function (a){
        console.log('msg' + a);
    }
}(3)(7));

这是用简单单词写的(3)(7)的一个例子:

var f1 = function (a){
    console.log(a);
    return function (a){
        console.log('msg' + a);
    }
}
var inheritFunction = f1(3); // Calling f1(3) won't return what you are looking for.
inheritFunction(7); // Returns the original value

这可能有效:

(function(a) {
  return function(a) {
    console.log('msg' + a);
  }
})(3)(5);

上面写着msg5,你就知道为什么了;)

相关文章: