lib/object.js
function(obj, clone) {
        var thisObj = this;
        thisObj.itsa_emptyObject();
        if (clone) {
            deepCloneObj(obj, thisObj, true);
        }
        else {
            thisObj.itsa_merge(obj);
        }
        return thisObj;
    }
function(obj, clone) {
        var thisObj = this;
        thisObj.itsa_emptyObject();
        if (clone) {
            deepCloneObj(obj, thisObj, true);
        }
        else {
            thisObj.itsa_merge(obj);
        }
        return thisObj;
    }
function ( obj , clone ) { var thisObj = this ; thisObj . itsa_emptyObject ( ) ; if ( clone ) { deepCloneObj ( obj , thisObj , true ) ; } else { thisObj . itsa_merge ( obj ) ; } return thisObj ; }
Sets the properties of `obj` to the instance. This will redefine the object, while remaining the instance.
This way, external references to the object-instance remain valid.

@method itsa_defineData
@param obj {Object} the Object that holds the new properties.
@param [clone=false] {Boolean} whether the properties should be cloned
@chainable
Sets the properties of obj to the instance . This will redefine the object while remaining the instance . This way external references to the object - instance remain valid .