Как получить доступ к строке, используя прототип - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь написать функцию, которая возвращает средний символ строки.Я хочу, чтобы он работал так, как показано ниже:

"123456789".midChar(); // Returns 5
"hello".midChar(); // returns 1
"test".midChar(); // returns e

Я хочу знать, как получить доступ к строке, если функция не принимает параметров?Как я могу ссылаться на строки внутри функции, чтобы иметь возможность манипулировать ею?Например, «123456789»

Что я сделал перед тем, как задать этот вопрос?

Я прочитал о прототипах и понял, как я могу добавить методы в массив и в прототип строки.Я пытался найти реализацию String.prototype.charAt() и несколько других, чтобы понять, как она построена, но не смог ее найти.Все, что я смог найти, это Reduce, ForEach и несколько других методов Array, но это не очень помогло в моем случае.

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

String.prototype.midChar= function () {
    console.log(String(this)); // 'this' is the string representation.
    console.log(this.substring(5));
    console.log(this);
};

"EleFromStack".midChar();
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 19 октября 2018

используйте this внутри функции midChar для доступа к строке.

String.prototype.midChar = function() {
  var mid = parseInt((this.length - 1) / 2)
  return this.substring(mid, mid+1);
}

console.log("123456789".midChar())
console.log("hello".midChar())
console.log("test".midChar())
0 голосов
/ 19 октября 2018

расширить прототип, как это

String.prototype.midChar= function () {
    //put yout function body here..
    //i.e.
    //var firstchar = this.charAt(0)
};

, который должен это сделать!

...