javascript创建对象

仿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';

 

posted @ 2017-02-04 22:22  欧欧欧锋_  阅读(146)  评论(0编辑  收藏  举报