Каков реальный эффект ключевого слова 'function' в определениях методов javascript инициализатора объекта - PullRequest
0 голосов
/ 05 марта 2020

Рассмотрим следующий пример объекта javascript с двумя методами

let O = {
  foo: function() { return 'foo'},
  bar () { return 'bar' },
}

Оба foo и bar являются методами объекта O последний определяется с документированным сокращением без function ключевое слово. Я думал, что эти определения, где эквивалентны, кажется, нет. На первый взгляд O.foo и O.bar выглядят как обычные функции, но есть разница, по крайней мере, в FireFox (73) и Safari (13): первый является конструктором, а второй - нет:

new O.foo() // OK
new O.bar() // TypeError: O.bar is not a constructor

Откуда эта разница? Это единственная разница? Это задокументировано?

1 Ответ

1 голос
/ 12 марта 2020

Надеюсь, эта статья поможет понять причину.

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