У меня есть простая проблема, но я не могу понять.Проблема прототипа
<script type="text/javascript">
var man = function(){
var age = 1;
this.shoes = 2;
};
man.prototype = {
create: function(){
//age = 5;
console.log(age);
console.log(this.shoes);
}
}
var man1 = new man;
man1.create();
</script>
-Ok, я создаю человека с 2 варами, возрастом и ботинками. Я использую «это» только в обуви. После того как я прототип метода в человеке.
-Если я выполняю этот код, первый console.log говорят мне:
Uncaught ReferenceError: возраст не определен (логика)
И вторая консоль "2" (правильно).
-Если я пишу: console.log (this.age) ошибка сообщения: undefined.
-Но если я ставлю значение для возраста (возраст = 5) (без использования «var» для создания var) в новом методе, он работает.
Почему я могу использовать только возраст var, если я ставлю значение, прежде чем читать это, но?
Сфера применения. Вы не можете получить доступ к своей прототипной функции. Однако перемещение его вне вашего конструктора делает его доступным. Определение «age = 5» в прототипе фактически не изменяет вашу первую переменную «возраст», потому что она защищена. – Michelangelo