Object.create的用法

来源:互联网 发布:c语言 延时 linux 编辑:程序博客网 时间:2024/06/05 17:33

Object.create(parent):
用法:
1. 创建一个对象
2. 继承指定父对象
3. 为新对象扩展新属性

何时使用create

希望在创建对象时就提前指定继承的父对象,并同时扩展新属性时。

 1. 创建hmm对象继承father,同时扩展phone属性 2. Object.create的实现原理:
<span style="font-size:18px;">          //不可能实现所有浏览器都支持Objecet.create,一部分可重写           //Objecet.create 的实现步骤3          //自定义Object.create方法          if(Object.mycreate===undefined){              Object.mycreate=function(parent,props){                  <span style="background-color: rgb(255, 102, 102);">//1:创建一个新对象                  var obj=new Object();                  //2:设置新对象继承parent                  Object.setPrototypeOf(obj,parent);//IE9+                  //3:为新对象扩展属性</span>                  Object.defineProperties(obj,props);//IE9+ ES5的新标准                  //返回新对象                  return obj;              }          }          var father={bal:1000,car:"=b="}          //var hmm=Object.create(father);          var hmm=Object.mycreate(father,{//create调用的也是defineproperty              phone:{//默认为false                  value:"肾7",                  writable:true,                  enumertable:true,                  configurable:true.              },          });          console.log(hmm.hasOwnProperty("bal"));//false,可以用,但是存到父类那里          console.log(hmm.bal);//子继承父,也可扩展自己的属性          console.log(hmm.car);          console.log(hmm.phone);</span>