У меня есть некоторый код библиотеки, который бесконечно циклически меняет.
Я не понимаю, как лучше всего выполнять обнаружение циклов и избегать в javascript. то есть нет программного способа проверить, был ли объект из справочника "this", есть ли?
Вот код. Спасибо!
setAttrs: function(config) {
var go = Kinetic.GlobalObject;
var that = this;
// set properties from config
if(config !== undefined) {
function setAttrs(obj, c) {
for(var key in c) {
var val = c[key];
/*
* if property is an object, then add an empty object
* to the node and then traverse
*/
if(go._isObject(val) && !go._isArray(val) && !go._isElement(val)) {
if(obj[key] === undefined) {
obj[key] = {};
}
setAttrs(obj[key], val); // <--- offending code;
// one of my "val"s is a "this" reference
// to an enclosing object
}