Error de sintaxis al probar un ejemplo del sitio web de MDN

Estaba probando un código de muestra para aplicar() de la red de desarrolladores de Mozilla (https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript)

El código que escribo es el siguiente: -

function Person( first, last ) {
    this.first = first;
    this.last = last;
}

Person.prototype.fullName = function() {
    return this.first+"; "+this.last;
};

var p1 = new Person( "Junaid", "Kirkire" );
var p2 = new Person( "Aditya", "Shanker" );

Person.prototype.toString = function() {
    return "Name " + this.first;
};

function trivialNew( constructor, ...args ) {
    var o = {};
    constructor.apply( o, ...args );
    return o;
};

var p3 = trivialNew( Person, "Junaid", "Kirkire" );

Recibo un SyntaxError en la línea constructor.apply(). ¿Puede alguien ayudarme con esto? Gracias.

preguntado el 12 de febrero de 14 a las 07:02

1 Respuestas

...args no es una sintaxis de JavaScript válida. Es la forma de decir de MDN "Aquí es donde van tus argumentos"

(Entonces, reemplace eso con sus argumentos reales)

Para obtener más información, consulte la documentación de MDN en Function.prototype.apply()

Respondido 12 Feb 14, 07:02

Gracias. Pensé que esta era la forma JS de especificar un número arbitrario de argumentos. Creo que el código debería ser: - var p3 = trivialNew( Person, [ "Junaid", "Kirkire"]); y la función trivialNew debería ser: - function trivialNew( constructor, args ) { var o = {}; constructor.apply( o, argumentos ); volver o; }; - junaidkirkire

Eso debería funcionar, sí. o: trivialNew(Person, "Junaid", "Kirkire", "x", "y", "z", "etc"); y constructor.apply(o, arguments); (arguments doc) - cerbro

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.