@albertineo

Приватные свойства конструктора копируются во время создания нового объекта в JavaScript?

В этом примере как получается что в каждом объекте созданном с помощью конструктора User есть свои переменные firstName, surname.
function User() {

  var firstName, surname;

  this.setFirstName = function(newFirstName) {
    firstName = newFirstName;
  };

  this.setSurname = function(newSurname) {
    surname = newSurname;
  };

  this.getFullName = function() {
    return firstName + ' ' + surname;
  }
}

var user = new User();
var user2 = new User();

user.setFirstName("Петя");
user.setSurname("Иванов");

user2.setFirstName("Петя222");
user2.setSurname("Иванов222");
alert( user.getFullName() );
alert( user2.getFullName() );
  • Вопрос задан
  • 342 просмотра
Пригласить эксперта
Ответы на вопрос 1
abyrkov
@abyrkov
JavaScripter
Неа. При каждом вызове создаются новые функции setFirstName, setSurname, getFullName, которые получают новые переменные-замыкания firstName, surname.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы