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
属性 )