Object.create

Object.create() 方法会使用指定的原型对象及其属性去创建一个新的对象。

Object.create(proto[, propertiesObject])
proto新创建对象的原型对象。propertiesObject可选。如果没有指定为 undefined
则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。
这些属性对应Object.defineProperties()的第二个参数。
返回值:在指定原型对象上添加新属性后的对象。
     <script type="text/javascript">
            function People(){
                
            }
            People.prototype={
                name:'Jane',
                age:14,
                getName:function(){
                    console.log(this.name);
                }
            }
            var person=Object.create(People.prototype);
            person.getName();//Jane
        </script>

 第二个参数

var newObj = Object.create(null,{
                value:{
                       writable:true,
                       configurable:true,
                       value: "hello" 
                       }
      });
   console.log(newObj)

一个没有原型的对象

      function People(){}
            People.prototype={
                name:'Jane',
                age:14,
                getName:function(){
                    console.log(this.name);
                }
            }
            var newObj = Object.create(People.prototype,{
                name:{
                    writable:true,
                    configurable:true,
                    value: "Jack" 
                    }
            });
            newObj.getName()// Jack
            console.log(newObj instanceof People) //true ( instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性 )

      

 

posted @ 2017-12-10 22:00  伊优  阅读(201)  评论(0编辑  收藏  举报