var a = {
init:function(){},
play:function(){}
};
var create = (function(){
var isES5 = !!Object.create;
var mix = function(target, source){
var key;
for(key in source){
if(source.hasOwnProperty(key)){
target[key] = (isES5 && typeof source[key].value==='undefined')?{value:source[key]}:source[key];
}
}
return target;
};
if(isES5){
return function(proto, property){
if(property){
var p = mix({}, property);
return Object.create(proto, p);
}else{
return Object.create(proto);
}
};
}else{
return function(proto, property){
var fn = function(){}, k;
fn.prototype = proto;
var result = new fn();
if(property) mix(result, property);
return result;
};
}
})();
var pro = {a:1,b:2};
var b = create(a, pro);
console.dir(b);
pro = {a:{value:1}, b:{value:2}};
var c = Object.create(a, pro);
console.dir(c);