Reference 在AppleScript中,为什么可以';是否声明对处理程序本地变量的引用?
为什么不能声明和使用对变量的引用,除非引用的变量是全局范围的?请解释导致以下现象的运行时内存或对象结构: 脚本A失败:Reference 在AppleScript中,为什么可以';是否声明对处理程序本地变量的引用?,reference,scope,applescript,handler,Reference,Scope,Applescript,Handler,为什么不能声明和使用对变量的引用,除非引用的变量是全局范围的?请解释导致以下现象的运行时内存或对象结构: 脚本A失败: on foo() set l to {0} set lref to a reference to l return item 1 of lref end foo foo() 脚本B成功: on run set l to {0} set lref to a reference to l return item 1
on foo()
set l to {0}
set lref to a reference to l
return item 1 of lref
end foo
foo()
脚本B成功:
on run
set l to {0}
set lref to a reference to l
return item 1 of lref
end run
on foo()
global l
set l to {0}
set lref to a reference to l
return item 1 of lref
end foo
foo()
脚本C成功:
on run
set l to {0}
set lref to a reference to l
return item 1 of lref
end run
on foo()
global l
set l to {0}
set lref to a reference to l
return item 1 of lref
end foo
foo()
另请参见:和,因为“引用”与对象说明符是同一件事,所以就AppleScript而言,您不能引用不属于(或包含在不属于)对象的内容 全局变量由顶级脚本对象拥有——它实际上是一个没有初始值设定项的属性。(您还可以对脚本属性进行引用;它不必是严格的全局属性。)
另一方面,局部变量由它所在的处理程序的调用框架拥有,调用框架不是AppleScript中的对象,因此没有引用。因为“引用”与对象说明符是同一个东西,所以不能引用不存在的东西(或包含在不存在的东西中)关于AppleScript的对象 全局变量由顶级脚本对象拥有——它实际上是一个没有初始值设定项的属性。(您还可以对脚本属性进行引用;它不必是严格的全局属性。)
另一方面,局部变量由其所在的处理程序的调用框架拥有,并且调用框架不是AppleScript中的对象,因此没有引用。并且可以指定对象的唯一方法是通过脚本初始化,正确吗?唯一可以指定对象的方法是通过脚本初始化,正确吗?可以在中找到模拟问题可以在中找到模拟问题