我有一个使用此功能的工作技能,该功能检查alexa设备是否具有显示器,以便我可以构建模板输出或将输出呈现到卡上:
function supportsDisplay() {
var hasDisplay =
this.event.context &&
this.event.context.System &&
this.event.context.System.device &&
this.event.context.System.device.supportedInterfaces &&
this.event.context.System.device.supportedInterfaces.Display
return hasDisplay;
}
我在几个地方渲染输出,所以我想做一个我可以调用的函数来处理视觉输出,而不必多次重写模板代码。
这将返回错误。如果我使用相同的函数,但是将对supportDisplay函数的调用注释掉,那么它将起作用,因此我认为问题出在我的调用方式上:
function makeTemplate(playStatus){
if (supportsDisplay.call(this)){...}
return;
}
我还尝试了根本不提供检查显示的功能,实际上只是将代码直接检查了功能,但这还是行不通的。
我猜测问题的一部分可能是this关键字(对于JS / Alexa开发人员来说我很陌生,并不真正了解“ this”的作用。
有没有一种方法可以从我的函数中调用supportsDisplay函数?这样做的语法是什么?