Показать сообщение отдельно
  #1 (permalink)  
Старый 12.07.2013, 04:31
Аватар для pikko
Аспирант
Отправить личное сообщение для pikko Посмотреть профиль Найти все сообщения от pikko
 
Регистрация: 06.10.2012
Сообщений: 60

Прототипное наследование. Лохотрон.
// представьте что у вас есть некий объект:
var a = {
    w : ['a', 'h', 't', ' ', 't', 'h', 'e'],
    f : [
            {  u : 'c',
                k : '?'
            }
        ]
};

// и вам надо произвести какие-то страшные манипуляции с его данными,
// при этом не повредив его, потому что, допустим, он очень дорог вам,
// и вы любите его всей душой.

// Вы делаете потомка, с которым не страшно делать все что угодно:
var b = Object.create(a);

// и делаете свои грязные делишки:
b.w.splice(0, b.w.length);
delete b.f[0].u;
delete b.f[0].k;

// вопрос — что теперь с вашим любимым 'a' ?
alert(JSON.stringify(a, null, 4));


Я понимаю что происходит и почему, но ведь это же НЕПРАВИЛЬНО! Какое же это наследование?

Последний раз редактировалось pikko, 12.07.2013 в 04:46.
Ответить с цитированием