代码如下: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就会报错。
添加回答
举报
0/150
提交
取消