|
主题: 请帮忙分析代码
|
 123123456
职务:普通成员
等级:1
金币:0.0
发贴:4
|
#12004/5/10 17:16:41
y=function(x){ if (x==1){ return 10; } else { return arguments.callee(x-1)+3; } } trace9(y(4))
执行上述脚本,得到的结果是19。 请帮忙分析一下,这段脚本是怎样执行的,怎么得到的19。谢谢,本人是一菜鸟,麻烦详细说明。
|
 123123456
职务:普通成员
等级:1
金币:0.0
发贴:4
|
#22004/5/10 17:28:11
还有个问题,什么是mc啊?谢谢
|
 123123456
职务:普通成员
等级:1
金币:0.0
发贴:4
|
#32004/5/10 18:02:09
是指movieclip吗
|
 aaee1122
职务:普通成员
等级:1
金币:0.0
发贴:66
|
#42004/5/12 13:54:21
arguments.callee
可用性
Flash Player 5。
用法
arguments.callee
说明
属性;指当前被调用的函数。
示例
可以使用 arguments.callee 属性来生成递归的匿名函数,如下所示:
factorial = function (x) { if (x <= 1) { return 1; } else { return x * arguments.callee(x-1); } };
下面是一个命名的递归函数:
function factorial (x) { if (x <= 1) { return 1; } else { return x * factorial(x-1);
}
}
是从帮助里找到的~~ 什么意思也不是很清楚。一会儿给你说。
|
 aaee1122
职务:普通成员
等级:1
金币:0.0
发贴:66
|
#52004/5/12 14:00:15
你那个 trace9(y(4)) 错了吧。快查查原来的。
|
 aaee1122
职务:普通成员
等级:1
金币:0.0
发贴:66
|
#62004/5/12 14:05:31
知道了, y(4)的时候, x!=1; 所以返回了y(3)+3; 而y(3)=y(2)+3; y(2)=y(1)+3; y(1)=10; 总共就是10+3+3+3=19  谢谢啦,我也学会这个啦。
|
 aaee1122
职务:普通成员
等级:1
金币:0.0
发贴:66
|
#72004/5/12 14:08:56
你就是说,你那个函数等同于 y=function(x){ if (x==1){ return 10; } else { return y(x-1)+3; } } trace (y(4)) 不过我想问一下,这个函数有什么用呢, 用回这种形式不是更好,有什么地方有用这个属性的必要呢。  请高手说明一下。
|