El constructor se comporta de manera diferente utilizando la notación abreviada de ES6

ES6 introdujo unnotación abreviada para inicializar objetos con funciones y propiedades.

// ES6 shorthand notation
const obj1 = {
    a(b) {
        console.log("ES6: obj1");
    }
};

// ES5
var obj2 = {
    a: function a(b) {
        console.log("ES5: obj2");
    }
};

obj2.a();
obj1.a();

new obj2.a();
new obj1.a();

Sin embargo, estas notaciones diferentes se comportan de manera diferente, como puede ver. Si lo hagonew obj1.a() en el navegador (probado Chrome y Firefox), obtengo unTypeError: obj1.a is not a constructor. new obj2.a() se comporta completamente normal.

¿Qué pasa aquí? ¿Alguien tiene una explicación y / o enlaces a la documentación / especificación?

Respuestas a la pregunta(3)

Su respuesta a la pregunta