Applescript 过滤数组使用其 ObjectSpecifier 使用 Javascript

Applescript Filtering Arrays using whose ObjectSpecifier using Javascript

`Apple 的 Javascript 自动化发行说明有一个使用任意 objectSpecifier 搜索数组的示例。

firstTabsName = ObjectSpecifier.tabs[0].name
app.windows.whose({_match: [firstTabsName, 'Apple']})

但是,第一行会引发错误。 “TypeError:undefined 不是一个对象(评估 'ObjectSpecifier.tabs') 我究竟做错了什么?谢谢你的帮助!`

第一行在 firstTabsName = ObjectSpecifier.tabs 处爆炸,即 returns missing value。超过那个点就不会成功。

您发布的代码似乎来自 Apple 发行说明,它在 "ObjectSpecifier" 之后缺少一组空括号,在 whose 语句之后缺少一组空括号。添加这些括号时,将调用 ObjectSpecifier 的构造函数,并且最终的说明符解析为匹配列表 windows。所以,更正后的代码是:

app = Application('Safari')
firstTabsName = ObjectSpecifier().tabs[0].name // added parens
app.windows.whose({_match: [firstTabsName, "Apple"]})() // added parens
// --> [Application("Safari").windows.byId(9016)]
mute = ObjectSpecifier().checkboxes["Mute"].value
mutedPersons = people.whose({_match:[mute,"Selected"]}