Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2016, 18:56
Новичок на форуме
Отправить личное сообщение для js-jedi-knight Посмотреть профиль Найти все сообщения от js-jedi-knight
 
Регистрация: 14.01.2016
Сообщений: 8

объект не изменяется через прототип
вопрос наверное нубский, но ответа не нашёл
разбирал уроки по js и столкнулся вот с чем:

function User(name, age){
    this.name = name;
    this.age = age;
}

var u2 = new User('Mike', 32);

обычный учебный пример, но при попытке изменить через прототип

User.prototype.x = true;

ничего не происходит, не могу понять что не так, вроде написано без ошибок
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2016, 18:59
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

function User(name, age){
    this.name = name;
    this.age = age;
}

var u2 = new User('Mike', 32);
alert(u2.x);
User.prototype.x = true;
alert(u2.x);


p.s чего вы ждете?
Ответить с цитированием
  #3 (permalink)  
Старый 14.01.2016, 19:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от js-jedi-knight
ничего не происходит
а что должно было произойти?
Ответить с цитированием
  #4 (permalink)  
Старый 14.01.2016, 19:10
Новичок на форуме
Отправить личное сообщение для js-jedi-knight Посмотреть профиль Найти все сообщения от js-jedi-knight
 
Регистрация: 14.01.2016
Сообщений: 8

Сообщение от рони Посмотреть сообщение
а что должно было произойти?
при вводе через консоль "u2;", свойство "x" не отображается
Ответить с цитированием
  #5 (permalink)  
Старый 14.01.2016, 19:14
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Сообщение от js-jedi-knight Посмотреть сообщение
при вводе через консоль "u2;", свойство "x" не отображается
а его нет нет у u2, оно в прототипе.
при обращении u2.х значение по цепочке прототипов берётся из прототипа (т.к. не определено у самого объекта)
Ответить с цитированием
  #6 (permalink)  
Старый 14.01.2016, 19:17
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

я бы посоветовал посмотреть вот это видео - мне понравилось: Конструкторы и прототипы
Ответить с цитированием
  #7 (permalink)  
Старый 14.01.2016, 19:17
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Советую почитать.

http://learn.javascript.ru/prototypes
Ответить с цитированием
  #8 (permalink)  
Старый 14.01.2016, 19:22
Новичок на форуме
Отправить личное сообщение для js-jedi-knight Посмотреть профиль Найти все сообщения от js-jedi-knight
 
Регистрация: 14.01.2016
Сообщений: 8

Сообщение от Keramet Посмотреть сообщение
а его нет нет у u2, оно в прототипе.
при обращении u2.х значение по цепочке прототипов берётся из прототипа (т.к. не определено у самого объекта)
допустим, тогда почему в учебном примере после той же последовательности действий, через ту же консоль получается следующее:

User {name: "Mike", age: 32, x: true }
Ответить с цитированием
  #9 (permalink)  
Старый 14.01.2016, 19:24
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Сообщение от js-jedi-knight Посмотреть сообщение
... после той же последовательности действий...
покажите эту вашу "последовательность". что вы делали (или пример учебный скиньте)
Ответить с цитированием
  #10 (permalink)  
Старый 14.01.2016, 19:29
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

function User(name, age){
				this.name = name;
				this.age = age;
			}
			var u2 = new User('Mike', 32);
			User.prototype.x = true;
			console.log(u2);

в консоли:
User {name: "Mike", age: 32}

есть ещё свойстов __proto__: User - это ссылка на прототип (у прототипа есть свойство х: true). что вас удивляет?

Последний раз редактировалось Keramet, 14.01.2016 в 19:32.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать объект в объекте Bryant-24 Общие вопросы Javascript 3 10.07.2013 16:06
jQuery (Как открыть объект в этом же окне, щёлкнув по нему мышкой) Объект кусок карты hadzhimuratov (X)HTML/CSS 32 18.06.2012 17:54
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 11.10.2011 00:45
Получить объект содержащий caller no_alex Общие вопросы Javascript 14 20.03.2009 21:37
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44