У меня есть рабочий навык, который использует функцию, которая проверяет, есть ли на устройстве 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).
Есть ли способ вызвать функцию поддержки функции Display из моей функции? Какой будет синтаксис сделать это?