JavaScript 内部函数需要签名

JavaScript inner function needs signature

我不确定这是什么意思 ERROR'Function statements require a function name.'? objective 是添加一个给名字的函数。如果我在不编辑最后四行代码的情况下让它工作,我使用了一个内部函数来尝试将其作为最有效的解决方案来实现。

function ChangePerson(name){ 
  changeName:  function(){
    if(this.name != name) {
      this.name = name;
      return name;
   }
};

var newPerson = new ChangePerson("John");
assert(newPerson.name == "John", "The name has been set on initialization" );

ninja.changeName("Bob");
assert( newPerson.name == "Bob", "The name was successfully changed." );

更新

此外,之前的尝试是

function ChangePerson(name){ 
  return changeName(){
    if(this.name != name) {
     this.name = name; 
    }
}};

这也不会改变Name();.

您正在寻找

function Person(name) {
  this.name = name;
  this.changeName = function(newName) {
    this.name = newName;
  };
}
var ninja = new Person("John");
ninja.changeName("Bob");

function makePerson(name) {
  return {
    name,                  // name: name,
    changeName(newName) {  // changeName: function(newName) {
      this.name = newName;
    },
  };
}
var ninja = makePerson("John");
ninja.changeName("Bob");