6-1通过原型继承创建一个新对象

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function inherit(p){   //创建一个函数接收一个参数p p为一个对象
 if(p == null) throw TypeError(); // p为空抛出错误 对象为空不接收任何属性和方法
 if(Object.create)               //检查有没有Object.create方法存在
  return Object.create(p);       //如果存在 返回Object.create(p)给函数 因为Object.create(p) 创建一个新对象 新对象的属性继承参数p对象的属性 函数继承参数p对象的属性
 var t = typeof p;  //参数p对象的类型 赋值给变量t
 if(t !== "object" && t !== "function") throw TypeError(); //如果不是类型不是对象 并且 类型不是一个构造函数 例如 function aa(){} 因为构造函数本身是对象 原型是构造函数aa.prototype属性的值
 function f(){}; //创建一个构造函数
 f.prototype = p; //构造函数f的原型就是f.prototype属性的值p f属性继承原型属性 所以就继承p对象的属性 
 return new f();  //返回创建和初始化的新对象 
}
var o = {x:13};
document.write(inherit(o).x); //函数inherit(o)继承对象o的属性x
/*
 函数inherit(p)的返回值就是一个新对象 新对象的原型属性是参数p 对象的属性都继承原型属性prototype 因为新对象的原型型属性prototyp
 的值是p对象 所以新创建的对象的属性继承自参数对象的属性
*/
</script>
</head>

<body>
 
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值