Преобразование в нижний и верхний регистр внутри класса с помощью метода, использующего Javascript - PullRequest
0 голосов
/ 24 мая 2018

Создание класса Str с методами для:

Добавление метода нижнего уровня для преобразования строки в нижний регистр.

Str.lower('EAT') // eat

Добавление метода верхнего уровня для преобразования строки в верхний регистр.

Str.upper('today') // TODAY

Я пытаюсь с кодом ниже, но не работает

class Str {
    constructor(lower,upper) {
        this.lower = lower.toLoweCase(); 
        this.upper = upper.toUpperCase();
    }
}

Str.lower('HALO');

1 Ответ

0 голосов
/ 24 мая 2018

Работает

class Str {
  constructor(lower,upper) {
    this.lower = lower.toLowerCase(); 
    this.upper = upper.toUpperCase();
  }
}

let x = new Str('HALO','what');
x.lower; //halo

Ваш код this.lower = lower.toLowerCase(); не создает функцию.Это просто объявление переменной, которая содержит значение lower.toLowerCase().Вместо этого вы должны попробовать следующее

class Str {
  constructor(lower,upper) {
    this.lowerName = lower.toLowerCase(); 
    this.upperName = upper.toUpperCase();
  }

  lower(input) {
    return input.toLowerCase();
  }
}

let y = Str.prototype.lower('WHAT'); //what

Если вы не создаете экземпляр Str, в противном случае вызываете функцию lower, как описано выше, потому что функция находится внутри prototype из class / object.Вы можете изобразить это как заимствование функции из Str class

Другой способ, которым вы можете попробовать, как показано ниже:

class Str {
  constructor(lower = "",upper="") {
    this.lowerName = lower.toLowerCase(); 
    this.upperName = upper.toUpperCase();
  }

  lower(input) {
    return input.toLowerCase();
  }
}
let strInstance = new Str();
console.log(strInstance.lower('WHY'));

Теперь приведенный выше код позволяет вам создать экземпляр Str и вызватьфункция

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...