bird
tenía un name
propiedad pública. Se considera público porque se puede acceder y cambiar fuera de la definición de bird
. bird.name = "Duffy";Por lo tanto, cualquier parte de su código puede cambiar fácilmente el nombre de
bird
a cualquier valor. Piense en cosas como contraseñas y cuentas bancarias que se puedan cambiar fácilmente en cualquier parte de su base de código. Eso podría causar muchos problemas. La forma más sencilla de hacer que las propiedades sean privadas es crear una variable dentro de la función constructora. Esto cambia el alcance de esa variable para que esté dentro de la función de constructor en lugar de estar disponible globalmente. De esta manera, a la propiedad solo se puede acceder y cambiar mediante métodos también dentro de la función de constructor. función Bird () {Aquí
dejar hatchedEgg = 10; // propiedad privada
this.getHatchedEggCount = function () {// método disponible públicamente que un objeto de pájaro puede usar
return hatchedEgg;
};
}
vamos ducky = nuevo pájaro ();
ducky.getHatchedEggCount (); // devuelve 10
getHachedEggCount
es un método privilegiado, porque tiene acceso a la variable privada hatchedEgg
. Esto es posible porque hatchedEgg
se declara en el mismo contexto que getHachedEggCount
. En JavaScript, una función siempre tiene acceso al contexto en el que se creó. Esto se llama closure
. weight
en la función Bird
para que sea una variable privada. Luego, cree un método getWeight
que devuelva el valor de weight
. weight
debe ser una variable privada.
testString: 'assert(!code.match(/this\.weight/g), "The weight
property should be a private variable.");'
- text: Su código debe crear un método en Bird
llamado getWeight
que devuelva el weight
.
testString: 'assert((new Bird()).getWeight() === 15, "Your code should create a method in Bird
called getWeight
that returns the weight
.");'
```