这用的是哪门子的语法?晕了一下午了,求救!:( 本帖最后由 pkuxmuflsk 于 2011-12-14 19:44:42 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是闭包,,function(num){ return function(){ return num; };}(i);这不是一个匿名方法么,后面一个括号表示调用这个方法,i是参数,然后返回值赋给result[i] 感谢您的回复,可是函数的方法调用不是应该放在圆括号里面吗?起码也应该是(function(num){ return function(){ return num; };})(i);才对吧,不加外面的圆括号不是都被认为是函数的声明吗? 参考:http://www.cnblogs.com/zengxiangzhan/archive/2009/12/02/1615644.html function createFunctions(){ var result=new Array(); for(var i=0;i<10;i++) { result[i]=function(num){ return function(){ return num; }; }(i);//这块用的是哪门子的语法?看不懂啊! } return result; }等价于:function createFunctions(){ var result=new Array(); for(var i=0;i<10;i++) { //我另声明一个变量(buff)来 暂存 var buff = function(num){ return function(){ return num; }; }; //这块用的是哪门子的语法?看不懂啊! result[i]=buff (i); } return result;} 要实现在面 的功能,要用个p 这种写法。简直就是脱了库子放屁!function createFunctions(){ var result=new Array(); for(var i=0;i<10;i++) { result[i]=i; }}不过,如果要我写客户端代码加密器,则会考滤 用算法加密成这种形试。 自动调用 匿名函数!如楼上所说,这样的代码,没必要那样写!直接 for(var i=0;i<10;i++) { result[i]=i; }这样多好 jquery 如何选中鼠标选中的文字,然后在前后加上标签 就是BBCODE 求助:关于js代码多层转义问题 jQuery 1.4 Reference Guide JavaScript用什么软件开发,可以开发什么? 在视频里添加 鼠标双击事件 的疑问 [图]404错误 请CSDN的工程师们进来解释一下这个原因. Spry问题,急呀!!! 急……如何得到label的名字 感谢本版朋友的帮助,散分100 举手之劳,帮个忙。 js引号问题 网页在线登记内容的提交问题
function(num){
return function(){
return num;
};
}(i);
这不是一个匿名方法么,后面一个括号表示调用这个方法,i是参数,然后返回值赋给result[i]
return function(){
return num;
};
})(i);才对吧,不加外面的圆括号不是都被认为是函数的声明吗?
http://www.cnblogs.com/zengxiangzhan/archive/2009/12/02/1615644.html
{
var result=new Array();
for(var i=0;i<10;i++)
{
result[i]=function(num){
return function(){
return num;
};
}(i);//这块用的是哪门子的语法?看不懂啊!
}
return result;
}
等价于:
function createFunctions()
{
var result=new Array();
for(var i=0;i<10;i++)
{
//我另声明一个变量(buff)来 暂存
var buff = function(num){
return function(){
return num;
};
};
//这块用的是哪门子的语法?看不懂啊!
result[i]=buff (i);
}
return result;
}
简直就是脱了库子放屁!
function createFunctions()
{
var result=new Array();
for(var i=0;i<10;i++)
{
result[i]=i;
}
}
不过,如果要我写客户端代码加密器,
则会考滤 用算法加密成这种形试。
如楼上所说,这样的代码,没必要那样写!
直接
for(var i=0;i<10;i++)
{
result[i]=i;
}这样多好