En Javascript, parece que el uso de acceso a propiedades no es tan común (a diferencia de otros lenguajes de OO como Java, por ejemplo).javascript acceso a propiedades
Si tengo un objeto Person
con un nombre, definido como
function Person(name) {
this.name = name;
}
nombre de una persona no va a cambiar, pero yo quiero ser capaz de acceder a él cuando sea necesario, por lo que podía hacer algo como:
function Person(name) {
var name = name;
this.getName = function() {
return name;
}
}
Incluso en un lenguaje dinámico, creo que los principios de la utilización de captadores y definidores se aplican de la misma manera que lo hacen a mecanografiado estáticamente lenguajes orientados a objetos (por ejemplo, la encapsulación, la validación de la adición, la restricción de acceso, etc.)
Esta pregunta puede cerrarse como subjetiva, pero tengo curiosidad de por qué este comportamiento no aparece con más frecuencia (p. Los desarrolladores de Java se volverían locos si todo fuera público).
¿Existe una forma "estándar" de hacer esto en javascript? He visto Object.defineProperty
, pero no todos los navegadores lo admiten.
Supongo que podría estar relacionado parcialmente con el deseo de reducir las cargas de ancho de banda. Marcado adicional significa bits adicionales a través del cable. Si bien en el caso de un pequeño ejemplo como este, podría no parecer relevante, en una aplicación robusta que abarca decenas de miles de líneas, podría volverse significativo. – Shmiddty
La definición adicional también significa el uso de memoria adicional en el cliente, en la misma línea que mi comentario anterior. – Shmiddty
Creo que las respuestas ya dadas muestran que esta no es una buena pregunta para SO, ya que es propenso a obtener respuestas basadas en opiniones. – madth3