Duplicar posibles:
Use of 'prototype' vs. 'this' in Javascript?funciones de instancia de JavaScript comparadas con las funciones del prototipo
Mi comprensión de los diferentes tipos de funciones de JavaScript son los siguientes:
function MyObj() {
this.propOne = true;
this.publicInstanceFunc = function() {
if (propOne)
return 'public instance function';
}
function privateFunc() {
return 'private function only visible inside this constructor';
}
}
MyObj.prototype.protoFunc = function() {
if (this.propOne)
return 'prototype function shared amongst all instances of MyObj';
}
- Son estos correctos?
- ¿En qué casos se deben poner funciones en el prototipo (por ejemplo,
protoFunc
) frente al constructor (por ejemplo,publicInstanceFunc
)? - ¿Está utilizando
this
la forma correcta de acceder a las propiedades dentro de las funciones del prototipo?
Gracias! ¡Buena respuesta! – mcjabberz
siento resucitar esta pregunta/respuesta, pero ¿tiene algo especial que envolver esa función externa en parens? p.ej. cómo es (función() {})(); diferente de la función() {}(); – Matt
@Matt: los paréntesis externos obligan a interpretar el literal de la función como una expresión en lugar de una declaración; son innecesarios en este caso porque la tarea ya obliga a esta interpretación, pero sin ella, debería obtener un error de sintaxis si omite los parens – Christoph