为了账号安全,请及时绑定邮箱和手机立即绑定

关于propotype的问题

var a=new Object(){ a.x=1; a.prototype.y=2;} var b = Object.create(a) 假如这样的话。B的原型指向a,a的原型里面有x这个值,那么a的x继承给了b很正常,问题来了,b有没有继承到y这个值?

正在回答

1 回答

第一、prototype是一个构造函数的属性,不是一个对象实例的属性,所以,你这a.prototype.y=2;这句话是不对的,因为实例a没有prototype属性,按你的目的,应该这样写:Object.prototype.y=2;这样的话,a的原型中就有y属性了,且值为2。又因为a是b的原型,所以b从原型链上继承了y属性,即b.y的值为2。(建议:自己写下代码实践一下就知道了!)附上代码:

<!DOCTYPE html>
<html>
<head>
<title>this is a title</title>
</head>
<body>
<script>
var a =new Object();
a.x=1;
Object.prototype.y=2 //写成 a.prototype.y=2是不对的!!!
var b= Object.create(a);
console.log(a.y);  //2
console.log(b.y);  //2
</script>
</body>
</html>


4 回复 有任何疑惑可以回复我~
#1

葛乌 提问者

谢谢你的回复
2016-04-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript深入浅出
  • 参与学习       281094    人
  • 解答问题       1054    个

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

进入课程

关于propotype的问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号