0

这可能是一个愚蠢的问题,但我已经到处寻找并作为最后的手段来到 SO。我怀疑 IIFE 函数通常看起来像这样

var me = (function() { /*code*/} )();
me();                       

到目前为止,我还没有看到任何将变量传递给它的代码。是否可以将值传递给 IIFE 函数?我已经尝试过使用

var Person = (function(name,age){
    this.name = name;
    this.age = age;
     }());
  Person("Bob Smith", 30); 

这给了我一个未定义的错误。

那么有没有办法将这些值传递给 IIFE 或者应该避免?

4

1 回答 1

1

这将是一个带有参数的 IIFE:

(function (a, b) {
    alert(a + b);
}('hello', ' world'));


正如其他人所说,你似乎在做的是一个构造函数,所以那里不需要它们。

如果你愿意,你可以这样做一个构造函数:

function Person(name, age) {
    this.name = name;
    this.age = age;
}

var bob = new Person('Bob Smith', 30);

你可以做一个匿名调用的构造函数,但这没有意义,因为它是一次性的交易类型,你不需要一个构造函数。

于 2013-09-04T19:53:10.930 回答