这可能是一个愚蠢的问题,但我已经到处寻找并作为最后的手段来到SO。 我怀疑是IIFE函数通常看起来像这样
var me = (function() { /*code*/} )();
me();
到目前为止,我还没有看到任何传递给它的变量的代码。 是否可以将值传递给IIFE函数?我已经尝试过使用
了var Person = (function(name,age){
this.name = name;
this.age = age;
}());
Person("Bob Smith", 30);
这给了我一个未定义的错误。
那么有没有办法将这些值传递给IIFE,还是应该避免?
答案 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);
你可以做一个匿名调用的构造函数,但这是没有意义的,因为它是一次性使用的交易类型,你不需要构造函数。