成员方法里面调用protype里的函数,生成多个对象时,prototype里的函数是否被复制?

inssuc 2010-12-27 12:45:00
像下面这个代码,speak()是被复制了3份到3个新建的对象, 还是只占prototype里的那一份内存?


function Person() {
this.sayHello = function() {
Person.prototype.speak("hello");
}
}

Person.prototype.speak = function(words) {
alert(words);
}


p1 = new Person();
p2 = new Person();
p3 = new Person();



...全文
72 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
firebugdotname 2010-12-27
  • 打赏
  • 举报
回复
调用 speak 时候, 先在p1对象里查找 speak方法 ,如果没有找到,就从它的原型链往上找,直到找到为止。
firebugdotname 2010-12-27
  • 打赏
  • 举报
回复
只占prototype里的那一份内存。

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧