var dd=function() {
alert("hello, world.");
} (); // 可以弹出
var nextId = function() { var id = 1
return function() { return id++ } }();
我的意思是:如何通过表达式来直接调用这个函数?
上面那个,直接在表达式后面价格括号就可以调用,为什么这个不可以呢?这个如要怎么像上面那个那样,直接在表达式上调用?
这里不太懂,正在研究,希望懂的前辈给解释下~
感谢
第一段
function() {}定义了一个函数,在后面加上括号会立即执行,不过一般为了好看,都会写成因为这个函数没有返回值,所以
dd的值是undefined。其实要不要前面的var dd =都会执行。第二段
这里定义了内外两个
function,其中外面的function的执行结果是定义内部的function并返回出来,也就是说,执行的结果是一个function。所以这一段执行之后
nextId就是一个函数,这个时候,如果执行
nextId()会得到依次递增的 ID 值。如果你执行
nextId.toString()可以看到nextId的定义,也就是上面定义在内部的那个函数