(function($_) {
    var o = $_.Utils.namespace($_, 'C');
	var safeObject = function(obj) {
		return ($_.O.isArray(obj)||$_.O.isPlainObject(obj))? $_.O.clone(obj):obj;
	};
    var publicP = {
        _data: {},
        _options: {
            safe: false,
            value: false,
            freeze: false,
            types: {}
        },
        initialize: function(data, options){
            if(data==null && options==null)
                return
            else if(!$_.O.isPlainObject(data)&& !$_.O.isPlainObject(options))
                throw new TypeError();
            if(options.types && !$_.O.type(data, options.types))
                throw new TypeError();
            data && $_.O.extend(this._data, data);
            options && $_.O.extend(this._options, options);
        },
        get: function(key){
            var res;
            if (this.has(key)) {
                res = this._data[key];
                return (this._options.safe)? safeObject(res):res;
            }
            return;
        },
        set: function(key, value, typeFn) {
            if(this._options.value)
                throw new Error('valueObject can\'t set value');
            if(this._options.freeze && !$_.A.include($_.O.keys(this._data),key))
                throw new Error('freezeObject can\'t set new value');
            typeFn = typeFn||this._options.types[key];
            if(typeFn&&!typeFn(value))
                throw new TypeError();
            typeFn && (this._options.types[key] = typeFn);
            this._data[key] = (this._options.safe)? safeObject(value):value;
        },
        has: function(key) {
            return !!this._data[key];
        },
        remove: function(key) {
            delete this._data[key];
        },
        equals: function(obj){
            return $_.O.equals(this._data, obj._data);
        }

    };
    var c = $_.Base.Class(publicP);
    $_.O.extend(o, {
        Store:  c
    });
})(Asdf);
@@ -1210,43 +1210,17 @@
 && !
-$_.A.include($_.O.keys(this._data),
+this.has(
 key)
@@ -1623,10 +1623,31 @@
 urn 
-!!
+$_.A.include($_.O.keys(
 this
@@ -1644,38 +1644,38 @@
 .keys(this._data
-%5Bkey%5D;
+),key)
 %0A        %7D,%0A    

store 개발 has undefined 인 경우