@MaxYenot

Как во вложенном объекте обратиться к свойству первоначального объекта?

Здравствуйте!
Я создал объект explanation
var synth = window.speechSynthesis;
var explanation = {
		phrase: "Where can I buy stamps and envelopes?"
		,translation: "Где я могу купить марки и конверты?"
		,phraseAudio: {
			audioUtterance: new SpeechSynthesisUtterance(this.phrase)
			,utteranceLang: "en-US"
			}
	};

Он состоит из:
фразы (phrase)
перевода (translation)
некоторого функционала, чтобы произнести фразу на англ.
Чтобы речевой движок произнес фразу, в его метод .speak нужно передать экземпляр объекта SpeechSynthesisUtterance

window.speechSynthesis.speak(new SpeechSynthesisUtterance("Hello"))
window.speechSynthesis.speak(new SpeechSynthesisUtterance("Привет"))

В explanation => phraseAudio => audioUtterance я как раз и пытаюсь поместить экземпляр объекта SpeechSynthesisUtterance. Параметром должна быть передана строка explanation => phrase

Я пишу
audioUtterance: new SpeechSynthesisUtterance(this.phrase)

Если ввести в консоль команду explanation.phraseAudio.audioUtterance
то возвращается объект SpeechSynthesisUtterance, но без параметра text (которым должна быть строка this.phrase)

Скорее всего дело в том, что когда я пишу внутри explanation => phraseAudio => audioUtterance (this.phrase), он ищет свойство phrase внутри phraseAudio, а не внутри explanation.

Как сделать, чтобы получить свойство не вложенного текущего объекта, а первоначального?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
tv_dakota
@tv_dakota
Backend developer
Просто обращайтесь к первоначальному объекту, а если нужно что то из вложенного делайте проверку через
let hasOwnProperty = Object.prototype.hasOwnProperty;
if (hasOwn(item, 'hint')) {
                            if (hasOwn(item.hint, 'link')) {

                                link = item.hint.link;

                            }

                        }

и берите из него то что вам нужно если таковое существует
Ответ написан
Почему бы тебе не сделать класс или конструктор и из него делать инстансы с нужной тебе фразой, заодно можно было бы инкапсулировать обращение к window.speechSynthesis
https://learn.javascript.ru/es-class
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы