gpt4 book ai didi

javascript - 修改对象的原型(prototype)不起作用

转载 作者:行者123 更新时间:2023-11-30 07:15:42 25 4
gpt4 key购买 nike

我一直在努力弄清楚为什么这行不通。如果有人能帮助我,我将不胜感激!

function Person(name, age) {
this.name = name;
this.age = age;
var ageInTenYears = age + 10;
this.sayNameAndAge = function() {
console.log(name + age);
}
}

Person.prototype.sayAge = function() {
console.log(this.age);
}

Person.prototype = {
sayName : function(){
console.log(this.name);
},
sayNameAfterTimeOut : function(time) {
setTimeout(this.sayName, time);
},
sayAgeInTenYears : function() {
console.log(ageInTenYears);
}
}

var bob = new Person('bob', 30);
bob.sayName();

我收到这个错误:

  Uncaught TypeError: Object #<Object> has no method 'sayAge' 

最佳答案

您正在覆盖整个原型(prototype)

Person.prototype = { /* ... */ };

也就是说你之前添加的sayAge方法又丢失了。要么颠倒这些赋值的顺序,要么将 sayAge 也移到另一个赋值中。

关于javascript - 修改对象的原型(prototype)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com