源代码是这样的:
function r(x){
return x;
}
function f(x){
x[0]=x[0]+">";
return x;
}
function o(){
var temp=r;
r=function(){
var c=temp.apply(this,f(arguments));
console.log(c);
return c;
}
}
function a(){
o();
alert(r("="));
}
for(var i=0;i<10;i++){
a();
}
我不能理解的是,第 n 次执行 a()的时候,控制台为什么会输出 n 行同样的语句。
(如第三次调用 a()的时候,输出了 3 行“=>>>”)。
恳请各位不吝赐教,再次多谢了~
PS:我知道 apply 函数改变了 r 的结构,但是我不太清楚改变之后 r 的结构变成什么样子,如果大家能告诉我第二次执行 a ()之后 r 的具体结构就更好了。
function r(x){
return x;
}
function f(x){
x[0]=x[0]+">";
return x;
}
function o(){
var temp=r;
r=function(){
var c=temp.apply(this,f(arguments));
console.log(c);
return c;
}
}
function a(){
o();
alert(r("="));
}
for(var i=0;i<10;i++){
a();
}
我不能理解的是,第 n 次执行 a()的时候,控制台为什么会输出 n 行同样的语句。
(如第三次调用 a()的时候,输出了 3 行“=>>>”)。
恳请各位不吝赐教,再次多谢了~
PS:我知道 apply 函数改变了 r 的结构,但是我不太清楚改变之后 r 的结构变成什么样子,如果大家能告诉我第二次执行 a ()之后 r 的具体结构就更好了。