将值传递给IIFE函数

时间:2013-09-04 19:11:59

标签: javascript iife

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

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

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

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

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

那么有没有办法将这些值传递给IIFE,还是应该避免?

1 个答案:

答案 0 :(得分: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);

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