Javascript.RU

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

Странный баг при 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, 14:46
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,165

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

Сообщение от 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, 19:27
Аватар для 9xakep
Школотэ!
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 680

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



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

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


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