Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2012, 23:52
Интересующийся
Отправить личное сообщение для stp008 Посмотреть профиль Найти все сообщения от stp008
 
Регистрация: 29.05.2012
Сообщений: 10

Куда пропадает объект
Здравствуйте. Вот собственно код:
function User() {
  this.sayHi = function() { alert(this.name) };
}
 
User.createAnonymous = function() {
  var user = new User;
  user.name = 'Аноним';
  return user;
}
 
User.createFromData = function(userData) {
  var user = new User;
  user.name = userData.name;
  user.age = userData.age;
  return user;
}
 
// Использование
 
var guest = User.createAnonymous();
guest.sayHi(); // Аноним
 
var knownUser = User.createFromData({name: 'Вася', age: 25});
knownUser.sayHi(); // Вася


alert(user.name); //пусто



Вопрос в том куда пропадает объект user, который присваивается knownUser. Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2012, 23:57
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

O_O А где вы создаете объект user?
alert(user.name); ?!?!?!?!
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2012, 00:02
Интересующийся
Отправить личное сообщение для stp008 Посмотреть профиль Найти все сообщения от stp008
 
Регистрация: 29.05.2012
Сообщений: 10

User.createFromData = function(userData) {
  var user = new User;
  user.name = userData.name;
  user.age = userData.age;
  return user;
}

Возвращается же объект user, который присваивается после использования конструктора. Тут он присваивается последним knownUser.
Ответить с цитированием
  #4 (permalink)  
Старый 16.11.2012, 00:04
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Он создается в функции, и виден только в ней. Почитайте про область видимости переменных в js.
Ответить с цитированием
  #5 (permalink)  
Старый 16.11.2012, 00:11
Интересующийся
Отправить личное сообщение для stp008 Посмотреть профиль Найти все сообщения от stp008
 
Регистрация: 29.05.2012
Сообщений: 10

Спасибо)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery (Как открыть объект в этом же окне, щёлкнув по нему мышкой) Объект кусок карты hadzhimuratov (X)HTML/CSS 32 18.06.2012 17:54
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 11.10.2011 00:45
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Общие вопросы Javascript 1 13.04.2011 22:09
Можно ли удалить клонированный объект Евгений_86 jQuery 6 13.04.2011 12:54
Получить объект содержащий caller no_alex Общие вопросы Javascript 14 20.03.2009 21:37