首页 新闻 会员 周边

JS中原型的问题

0
[待解决问题]
function Person() {

 

}
Person.prototype.name="tom";
Person.prototype.sayName=function () {
alert(this.name);
};
var p1=new Person();
var p2=new Person();
console.log(p1.prototype==Person.prototype);//false
console.log(p1.prototype == p2.prototype);//true
console.log(Object.getOwnPropertyNames(p1)==Person.prototype);//false
 请问,为什么实例和构造函数的原型不是一个?
老杨家的伙计的主页 老杨家的伙计 | 菜鸟二级 | 园豆:202
提问于:2018-07-03 21:46
< >
分享
所有回答(3)
0

你可以把p1.prototype,p1.prototype,Person.prototype,Object.getOwnPropertyNames(p1)打出来看看是什么东西,然后在去学习一波原型的概念。这样应该理解的更深点

华临天下 | 园豆:1501 (小虾三级) | 2018-07-04 09:49

Object.getOwnPropertyNames(p1) 是空数组

Object.getOwnPropertyNames(Person)   是Person 的变量对象

为什么不是一个 不是用一个原型么

支持(0) 反对(0) 老杨家的伙计 | 园豆:202 (菜鸟二级) | 2018-07-04 10:45

@老杨家的伙计: 这时候去百度一波看看原型的概念,合理利用资源啊

支持(0) 反对(0) 华临天下 | 园豆:1501 (小虾三级) | 2018-07-04 10:47

@华临天下: 谢谢你的回答,但是对我没有帮助

支持(0) 反对(0) 老杨家的伙计 | 园豆:202 (菜鸟二级) | 2018-07-04 11:55

@老杨家的伙计: https://www.jianshu.com/p/dee9f8b14771

这个文章看看能不能对你有点帮助

支持(0) 反对(0) 华临天下 | 园豆:1501 (小虾三级) | 2018-07-04 12:05
0

构造函数相当于工厂,实例则是工厂生产出来的实际对象

名字不好起啊 | 园豆:401 (菜鸟二级) | 2018-07-04 09:59
0

首先。。 实例化对象(姑且叫算作是{}) 是没有prototype属性的
所以 p1.prototype  是  undefined
Function对象是 是有 prototype 的  所以你这个算法结果没毛病

blurs | 园豆:660 (小虾三级) | 2018-07-05 15:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册