![]() |
А можно передавать объект не по ссылке, а по значению?
Писал вот что-то в таком духе:
a={}; b={}; a=b; a.q="a"; И с некоторым удивлением обнаружил, что при этом b.q="a", причем связь эта динамически отслеживается, так что получилась паразитная (в моем случае) обратная связь. Не придумал ничего лучше, чем приравнивать каждое свойство по отдельности, но сдается мне способ достаточно извращенский. Может кто подскажет что-нибудь поумнее, а? З.Ы. И еще вопрос не по теме однако тоже весьма меня интересующий: как удалить все элементы массива разом? |
как да как
a наследник б
a=[1,2,3,4,5]; // вот создал a.length = 0; // вот удалил // а еще смотри как ты удивишься ... b={} a=b b.q = 1; trace (a.q) /* да бывают чудеса на свете, чтоб чудес не было книги нада читать, а не ломать голову другим людям!. не обж.. шучу */ |
Цитата:
Цитата:
Вопрос, то, собственно, в чем? Как сделать так чтобы a не отслеживал изменений b Цитата:
99% - тупые самоучители |
Re: как да как
Цитата:
|
Блин, да знаю я что a - ссылка на b
|
Цитата:
|
Копировать объект, может что-то типа этого.
Код:
Object.prototype.copy = function()Код:
a = new Object(); |
попоробуй сделать функцию, которая создает другой обьект и "врукопашную" копируй туда значения... может так "наводить"не будет....не пробовал,...
|
три раза одно и тоже )
a = [5]; b = a.slice (0); trace ("до"); trace (a); trace (b); b[0] += 7; trace ("после"); trace (a); trace (b); |
Цитата:
a = new Array("a1", "b1", "c1"); b = new Array(); b = a.concat(); trace(b[0]); trace(b[1]); trace(b[2]); b[0]= "f1" trace(a[0]); trace(b[0]); Есть еще один полезный метод: slice() |
| Часовой пояс GMT +4, время: 17:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.