JavaScript внутренняя функция требует подписи - PullRequest
0 голосов
/ 12 июля 2020

Я не уверен, что это означает ОШИБКА «Операторы функции требуют имени функции.»? Цель состоит в том, чтобы добавить функцию, дающую имя. Я использовал внутреннюю функцию, пытаясь выполнить sh это как наиболее эффективное решение, если я заставлю ее работать без редактирования четырех последних строк кода.

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; 
    }
}};

, это также не изменяет имя () ;.

1 Ответ

0 голосов
/ 12 июля 2020

Вы ищете

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");
...