1.
var name="The widow";
var object={
name:"my object";
getNameFunc:function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
问:为什么alert(object.getNameFunc()());中getNameFunc后是两个括号????
——————————————————————————————————————————————————————
2.function createFunctions(){
var result=new Array();
for(var i=0;i<10;i++){
result[i]=function(num){
return function(){
return num;
};
}(i);//*A*
}
return result;
}
var funcs=createFunctions();
for(var i=0;i<funcs.length;i++){
document.write(funcs[i]()+"<br/>");
}
问:为什么*A*前有个(i),我知道那个是传给内部匿名函数的参数(形参是num那个),但是为什么是在哪里而不是调用的时候传参数呢?就是为什么不是document.write(funcs[i](为什么不是在这里传参数???)+'<br/>")
var name="The widow";
var object={
name:"my object";
getNameFunc:function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
问:为什么alert(object.getNameFunc()());中getNameFunc后是两个括号????
——————————————————————————————————————————————————————
2.function createFunctions(){
var result=new Array();
for(var i=0;i<10;i++){
result[i]=function(num){
return function(){
return num;
};
}(i);//*A*
}
return result;
}
var funcs=createFunctions();
for(var i=0;i<funcs.length;i++){
document.write(funcs[i]()+"<br/>");
}
问:为什么*A*前有个(i),我知道那个是传给内部匿名函数的参数(形参是num那个),但是为什么是在哪里而不是调用的时候传参数呢?就是为什么不是document.write(funcs[i](为什么不是在这里传参数???)+'<br/>")
(第一点中你写法也有问题,用","分隔)
return function(){
return num;
};
}(i)其实就是加个(i)其实就是执行定义的匿名函数。等价于function func(num){
return function(){
return num;
}
}
result[i] = func(i);