Error de sintaxis al probar un ejemplo del sitio web de MDN
Frecuentes
Visto 39 equipos
0
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.
1 Respuestas
3
...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
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript mozilla or haz tu propia pregunta.
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");
yconstructor.apply(o, arguments);
(arguments
doc) - cerbro