Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2012, 15:41
Профессор
Посмотреть профиль Найти все сообщения от Solovei95
 
Регистрация: 15.03.2011
Сообщений: 353

Странный баг при prototype
Я заметил, что когда меняю a.optima, меняется и c.optima
//Создаем обьект apple
var Apple = function(){
	this.optima = 1;
}
var a = new Apple();

//Создаем обьект container и присваем прототип от apple
var Container = function(){}
Container.prototype = a;
var c = new Container();

//Странный баг
a.optima = 2;
alert(c.optima);


Почему так происходит?
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2012, 15:46
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Потому что в c нет свойства optima, оно из a берётся.
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2012, 16:29
Интересующийся
Отправить личное сообщение для irezvov Посмотреть профиль Найти все сообщения от irezvov
 
Регистрация: 24.11.2011
Сообщений: 24

Сообщение от Solovei95 Посмотреть сообщение
Я заметил, что когда меняю a.optima, меняется и c.optima
//Создаем обьект apple
var Apple = function(){
	this.optima = 1;
}
var a = new Apple();

//Создаем обьект container и присваем прототип от apple
var Container = function(){}
Container.prototype = a;
var c = new Container();

//Странный баг
a.optima = 2;
alert(c.optima);


Почему так происходит?
это не баг, это фича
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2012, 20:27
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Странного ничего нет, т.к когда ты пишешь Container.prototype = a;, то в контейнере будет лежать ссылка на Apple, соответсвенно когда ты изменяешь параметр значение optimа, то при вызове: c.optima, это значение и берется. Вроде не ошибся...
__________________
оляля, ололо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баг в IE при попытке установить disabled у кнопки versus_spb Internet Explorer 10 18.11.2011 08:25
Баг при прокрутке грида posta ExtJS 0 17.06.2011 14:18
Баг при многократном нажатии grefon jQuery 8 06.09.2010 14:24
Баг Firefox: по F5 перескакивает radio при динамическом добавлении в DOM input Atoll Events/DOM/Window 6 22.06.2010 18:25
Странный баг UI draggable в Firefox и IE _deil_ jQuery 0 10.01.2010 19:49