С одной стороны, var bee1 = new Bee("qwe", "asd");
совместим с разными браузерами. Некоторые браузеры не позволяют вам возиться с полем __proto__
объекта - IE является одним из них.
С другой стороны, это меньше кода и имеет больше смысла на первый взгляд.
Кроме того, во втором примере с первой строкой вы создали bee1
, но не инициализировали его. Что касается второй строки, система будет считать ее Bee
, но она по-прежнему не построена как одна. Если что-то пошло не так в конструкторе или где-то еще между созданием и созданием, вы можете получить полусгоревший Bee
. Это в отличие от new Bee(...)
, который либо возвращает вам правильно сконструированный Bee
, либо выдает исключение.