- 我确定这是重复的 -
我在O' reilly书中读过这篇文章(:
虽然没有理由):
在一个简单的AppleScript文件中:
script implicitRunHandlerScript
end script
run implicitRunHandlerScript
-- why does this lead to a stack overflow?
答案 0 :(得分:3)
您发布的脚本包含一个名为implicitRunHandlerScript
的子脚本和一个处理程序,即“隐式run
处理程序”。隐式run
处理程序包含一个语句:
run implicitRunHandlerScript
子脚本继承其父级的处理程序。因此,您的implicitRunHandlerScript
继承了其父级的实现run
处理程序。并且继承的隐式run
处理程序调用{{1}}的{{1}}处理程序,因此它以递归方式调用自身。
阅读 AppleScript语言指南中的Defining Script Objects和Inheritance in Script Objects。
答案 1 :(得分:0)
来自AppleScript: The Definitive Guide:
如果脚本对象没有显式的运行处理程序且没有可执行文件 隐式运行处理程序中的语句,告诉它运行可以有 不可预测的后果(这个事实几乎肯定是一个错误)。