Создание объекта буквально не удается в заметной записной книжке - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь запустить этот простой фрагмент кода из книги O'Reilly "Learning React" в записной книжке Observable (https://observablehq.com/).

Это работает, если я его запускаю в консоли Chrome (я могу определить объект и затем запустить tahoe.print()), но если я попытаюсь запустить его в Observable, при запуске ячейки я получу SyntaxError: Unexpected Token.

Есть ли что-то странное в Наблюдаемый, который мешает мне создавать объектные литералы как это?

tahoe = {
  resorts: ["Kirkwood","Squaw","Alpine"],
  print: function(delay=1000) {
    setTimeout(() => {
      console.log(this.resorts.join(", "))
    }, delay)
  }
}

Вот блокнот с кодом: https://observablehq.com/@jritch / simple-snippet-breaks-in-наблюдаемый

1 Ответ

0 голосов
/ 17 февраля 2020

Блекс указал, что для того, чтобы это работало, вам нужно заключить объект в скобки:

tahoe = ({
  resorts: ["Kirkwood","Squaw","Alpine"],
  print: function(delay=1000) {
    setTimeout(() => {
      console.log(this.resorts.join(", "))
    }, delay)
  }
})

Рабочий фрагмент .

Чтобы получить более полное объяснение, почему это так, см. Этот пост в блоге, в котором описаны различия между Observable и vanilla javascript:

Требуются заявления фигурные скобки и return (или yield). Тело ячейки может быть простым выражением, например, числовым или строковым литералом, или вызовом функции. Но иногда вам нужны операторы, например, для циклов. Для этого вам понадобятся фигурные скобки и оператор return, чтобы дать ячейке значение. Думайте о ячейке как о функции, за исключением того, что у функции нет аргументов. По той же причине вам нужно будет обернуть литералы объекта в круглые скобки или использовать оператор блока с возвращаемым значением.

Существует также (довольно трудно увидеть) виджет волшебной палочки c, который появляется рядом со значком кнопки воспроизведения для ячейки, которая автоматически устранит эту проблему, если щелкнуть ее:

https://i.imgur.com/uf5H1LA.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...