Object.create

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:"肾6s",
				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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值