Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   JOOT - JavaScript Object-Oriented Tools (https://javascript.ru/forum/library-toolkit-framework/16764-joot-javascript-object-oriented-tools.html)

Neytriti 21.04.2011 13:03

JOOT - JavaScript Object-Oriented Tools
 
Привет.
Недавно запустил свой проект посвященный ООП + JavaScript.
JOOT - это небольшая библиотека, предоставляющая иснтрументы, которые упрощают написание объектно-ориентрированного кода на JavaScript.
Будет интересно почитать отзывы и предложения.
Так же буду рад, если кому-нибудь этот тул принесет пользу.
Благодарю за внимание.
http://code.google.com/p/joot/

with-love-from-siberia 21.04.2011 15:56

var x = {
	a: 100
};

var y = joot.cloneObject(x);

alert(x.a);
alert(y.a);

x.a++;
y.a--;

alert(x.a);
alert(y.a);


Ожидание
Цитата:

100
100
101
99
Результат
Цитата:

100
100
101
100
.
---------------
Сложные структуры не клонируются
var x = {};
x.a = {};

var y = joot.cloneObject(x);

alert(x.a); // [Object]
alert(y.a); // [Object]

x.a = 100;

alert(x.a); // 100
alert(y.a); // 100


------------------------
Хотя так - работает
var x = {};
x.a = {};

var y = joot.cloneObject(x);

alert(x.a); // [Object]
alert(y.a); // [Object]

y.a = 100;

alert(x.a); // [Object]
alert(y.a); // 100

Neytriti 21.04.2011 16:27

with-love-from-siberia

Спасибо за ваш интерес.
К сожалению вы не совсем верно поняли работу cloneObject метода.
Он не совершает как токовое клонирование.
Просто связывает объекты через механизм prototype-chaining.
Поэтому если в клоне нет одноименного метода\проперти, оно тянется из объекта выше по цепочке. Соответственно ваши ожидания не оправдываются.
В документации это описано: http://code.google.com/p/joot/wiki/API

with-love-from-siberia 21.04.2011 17:01

А смысл метода? Название одно, а делает другое - в заблуждение вводит.

Цитата:

иснтрументы, которые упрощают написание объектно-ориентрированного кода на JavaScript
Эмуляция классического ООП в js реализуется в 3 десятка строк. При желании можно сократить в 20 строк без потери читабельности.


Часовой пояс GMT +3, время: 00:31.