InDesign脚本问题。
我知道需要用var写什么。我只是想知道发生了什么.
下面是我的脚本:
function myalert(s){
var w = new Window('palette')
ws = w.add('statictext',undefined,s)
w.show()
$.sleep(1000)
w.close()
}
myalert('hello')
alert(ws)警报:
问:为什么会发生这种情况?为什么在警报后出错?ws已经从内存中删除了吗?那为什么我会看到警告呢?是否未删除?那么为什么我看到错误呢?
发布于 2020-06-16 01:11:58
myalert(),您会看到“hello”警报。myalert()结束,ws和w (它是myalert()).ws (在它被删除之后),并收到错误。<代码>H212<代码>G213请参见:
var w = 100 // global
function myalert(s){
var w = new Window('palette') // local (shadows 100)
ws = w.add('statictext',undefined,s) // global
w.show()
$.sleep(1000)
w.close()
alert('In myalert() w = ' + w)
alert('In myalert() ws = ' + ws)
}
myalert('hello')
alert('Global, w = ' + w)
alert('Global, ws = ' + ws)如果您不使用var,w和ws都将停留在全局范围内:
function myalert(s){
w = new Window('palette')
ws = w.add('statictext',undefined,s)
w.show()
$.sleep(1000)
w.close()
alert('[myalert] w = ' + w)
alert('[myalert] ws = ' + ws)
}
myalert('hello')
alert('[global] w = ' + w)
alert('[global] ws = ' + ws)PS。您还可以使用$.writeln('ws = ' + ws)在控制台上转储对象
https://stackoverflow.com/questions/59189275
复制相似问题