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

为什么在构造函数的prototype中添加的属性不能被构造函数使用?

为什么在构造函数的prototype中添加的属性不能被构造函数使用?

月关宝盒 2019-04-07 11:19:08
代码如下:javascriptfunctionFoo(){};Foo.prototype.talk=function(){alert('hello~\n');};vara=newFoo;a.talk();//输出'hello~\n'但是如果这样:javascriptFoo.talk()//报错:Objectdoesn'tsupportpropertyormethod'talk'Foo.prototype.talk()//没有问题而且当我使用javascript"talk"inFOO//返回false但是如果查看javascriptFoo.prototype会发现talk属性的确已经被添加上去了。非常不理解这种行为。
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

protorype是构造函数的一个属性,我们可以这样理解。假设定义一个对象.varobj={name:"Andy",alias:{nickname:"Tiger"}};我们要访问nickname这个obj的属性上的属性,需要这样访问:obj.alias.nickname;但是如果我们直接防范obj.nickname就会返回undefined//如果是一个方法,调用nickname就会报错。
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 350 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信