2012-12-29 58 views

回答

3

您發佈的腳本包含一個名爲implicitRunHandlerScript的子腳本和一個處理程序「隱含的run處理程序」。隱式run處理程序包含一個聲明:

run implicitRunHandlerScript 

一個孩子的腳本繼承其父的處理程序。所以你的implicitRunHandlerScript繼承其父的處理器run。並且繼承的隱式run處理程序調用implicitRunHandlerScriptrun處理程序,因此它會遞歸調用它自己。

閱讀Defining Script ObjectsInheritance in Script ObjectsAppleScript語言指南

+0

爲什麼要向implicitRunHandlerScript添加蜂鳴聲命令(或任何命令)修復您描述的遞歸? – adayzdone

+0

在子腳本中放置一個'beep'語句(腳本implicitRunHandlerScript'和'end script'修復了遞歸,因爲這樣子腳本就有了它自己的隱式'run'處理程序,而不是繼承父母的 –

+0

所以腳本對象在它包含可執行語句之前沒有隱式運行處理程序?那麼腳本本身(它是一個腳本對象)怎麼樣? – adayzdone

0

AppleScript: The Definitive Guide:

如果腳本對象沒有明確的運行處理程序,並沒有可執行在其隱含的運行處理 聲明,告訴它運行可以有 不可預測的後果(這一點幾乎可以肯定是一個錯誤)。

相關問題