匿名函数 大家知道小括号的作用吗? 小括号能把我们的表达式组合分块,并且每一块, 也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。 所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function对象。 因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。 所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。 var ab=function (x,y) { return x+y; } console.log(ab(2,4)); var m=(function (x,y) { return x+y; })(2,4); console.log(m); var abc=function(x,y){return x+y;} var mm=abc(3,3); console.log(mm); console.log(new Function ("x","y"," return x+y;")(3,4)); console.log(abc.constructor==(function(x,y){return x+y;}).constructor);//true console.log(abc.constructor==new Function ("x","y","x+y;").constructor);//true PS:constructor是指创建对象的函数。也就是函数对象所代表的函数体。总之,将其(被小括号包含的匿名函数)理解为括号表达式返回的函数对象,
然后就可以对这个函数对象作正常的参数列表调用了。
(前面这里犯了个错 误,只有函数表达式还是不能直接调用函数的,去掉匿名函数括号必须要伴随将表达式赋值。
也就是(function(){alert(1)})()应该是与 a=function(){alert(1)}()等价,不能连a=都去掉。)
匿名函数
最新推荐文章于 2024-06-07 10:06:32 发布