首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >extendscript对象无效

extendscript对象无效
EN

Stack Overflow用户
提问于 2019-12-05 14:14:27
回答 1查看 140关注 0票数 0

InDesign脚本问题。

我知道需要用var写什么。我只是想知道发生了什么.

下面是我的脚本:

代码语言:javascript
复制
function myalert(s){
    var w = new Window('palette')
    ws = w.add('statictext',undefined,s)
    w.show()
    $.sleep(1000)
    w.close()
}

myalert('hello')
alert(ws)

警报:

  1. Object StaticText
  2. JavaScript错误!对象无效...

问:为什么会发生这种情况?为什么在警报后出错?ws已经从内存中删除了吗?那为什么我会看到警告呢?是否未删除?那么为什么我看到错误呢?

EN

回答 1

Stack Overflow用户

发布于 2020-06-16 01:11:58

  1. 首先执行myalert(),您会看到“hello”警报。
  2. 然后myalert()结束,wsw (它是myalert()).
  3. Then的本地)一起被删除。您尝试在全局作用域中访问ws (在它被删除之后),并收到错误。<代码>H212<代码>G213

请参见:

代码语言:javascript
复制
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)

如果您不使用varwws都将停留在全局范围内:

代码语言:javascript
复制
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)在控制台上转储对象

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59189275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档