将方法添加到原型,以大写形式返回

时间:2019-04-14 17:30:09

标签: javascript

我正在编写作业代码,但是即使在使console.log输出预期的答案时,我在repl.it中写的代码也会出现“语法错误”意外的“”,该代码未读为true并显示了代码完成

我尝试创建新变量并将其同步到此变量并返回,但是代码未读为真

这是预期的“在Person的原型中添加一个名为“ shoutName”的方法,该方法将以所有大写字母返回该人的姓名。” 这就是回报

function Person(name) {
    this.name = name;
    this.shoutName = function() {
        name.toUpperCase();
        return.this.name.toUpperCase();
    }
}

/* Do not modify code below this line */

const john = new Person('John');
console.log(john.shoutName(), '<-- should be "JOHN"');

2 个答案:

答案 0 :(得分:0)

您应在.之后删除return。同样,您没有将方法添加到prototype中,而是将方法添加到了对象本身。您应该将方法添加到Person.prototype

function Person(name){
    this.name = name;
}
Person.prototype.shoutName = function() {
   return this.name.toUpperCase();
}
/* Do not modify code below this line */
const john = new Person('John');
console.log(john.shoutName(), '<-- should be "JOHN"');

答案 1 :(得分:0)

return关键字和要返回的值之间应该有一个空格,而不是一个引起SyntaxError的点。另外,您应该将shoutName方法添加到Person的原型中,而不是创建的每个Person对象中,以提高可维护性。

function Person(name) {
    this.name = name;
}
Person.prototype = {
  /*add any methods you want all Person objects to have*/
  shoutName: function(){
    return this.name.toUpperCase();
  }
};

const john = new Person('John');
console.log(john.shoutName(), '<-- should be "JOHN"');