仿Object.create
if (typeof Object.create != \'function\') { Object.create = (function(undefined) { var Temp = function() {}; return function (prototype, propertiesObject) { if(prototype !== null && prototype !== Object(prototype)) { throw TypeError(\'Argument must be an object, or null\'); } Temp.prototype = prototype || {}; var result = new Temp(); Temp.prototype = null; if (propertiesObject !== undefined) { Object.defineProperties(result, propertiesObject); } // to imitate the case of Object.create(null) if(prototype === null) { result.__proto__ = null; } return result; }; })(); }
以下的方式主要是为了避免忘记写new而封装的方法; //先创建函数 Object.beget = function (o) { var F = function (o) {}; F.prototype = o ; return new F; }; //定义好模板对象 var Cat = { name:\'\', saying:\'meow\' }; //从模板对象中创建一个对象 var myCat = Object.beget(Cat); //对象生成后,可以自行对相关属性进行赋值: myCat.name = \'mimi\';