我正在挑战,其中一个问题似乎是我得到了正确的答案,但没有通过。需要帮助来了解为什么没有。
挑战:向Person的原型添加一个名为“ shoutName”的方法,该方法以所有大写字母返回该人的名字。
function Person(name) {
this.name = name;
this.shoutName = function() {
name.toUpperCase();
return '"' + name.toUpperCase()+'"'
}
}
/* Do not modify the code below this line */
const john = new Person('John');
console.log(john.shoutName(), '<-- should be "JOHN" ');
答案 0 :(得分:1)
说要向构造函数的原型添加函数的问题。
您没有那样做。您修改了构造函数,以便在创建实例时将函数动态添加到实例。
Person.prototype.shoutName = function () {
return this.name.toUpperCase();
}
您的函数还将结果值括在引号中,而问题并没有要求您这样做。
答案 1 :(得分:0)
从您的小照片中,我注意到您的代码是:
return '"' + name.toUpperCase() + '"';
不确定为什么要添加引号,只需return this.name.toUpperCase();
,它就可以正常工作。您应该引用此对象的属性,而不是仅输入name
的输入值。
此外,将name.toUpperCase();
单独放在一行上不会做任何事情。不必要的计算,因为该函数会返回您未分配的值。