4
这里有两个函数。Javascript中的自调用函数
1)用'新'对象创建。
(
function se(){
var a=10;
var t = function(){
var that=this;
alert(a);
that.book= function(){
alert(that);
}
that.book();
}
return new t();
}()
);
2)使用对象字面方式
(
function se(){
var a=10;
var f={
init:function(){
alert(a);
}
}
f.init();
}()
);
那么什么是用最好的做法是什么?为什么?在第一个例子中使用'this'的目的是什么?
函数不是自调用,这意味着递归 – Esailija
@Esailija:你可以说'se'函数在这里是自调用的。 – haylem
最佳做法既不是选项。两者都创建一个没有存储在任何地方的对象,因此最终效果是显示两个警报(第一个选项)或单个警报(第二个选项)。 @haylem:他们不是自我调用 - 函数体不递归调用函数。他们“立即调用函数表达式”。 – nnnnnn