Я пытаюсь расширить метод до прототипа .JavaScript: Как получить доступ к строковому значению объекта String?
Я хочу, чтобы этот метод управлял строковым значением, но я не уверен, как его получить.
this
контекст текущего объекта относится к строковому объекту, но не к фактическому строковому значению.
String.prototype.test = function() { console.log(this)}
function() { console.log(this) }
'lol'.test()
VM192:2 String {0: "l", 1: "o", 2: "l", length: 3,
has: function, contains: function,
escapeRegExp: function, camelize: function…
}
Как получить строковое значение вместо строкового объекта?
Строка объекта ** это ** строка, для всех практических целей. То, что вы видите на консоли, - это артефакт некоторых внутренних механизмов, в сочетании с тем, как работает 'console.log'. Во всех других контекстах строковый объект по существу идентичен его примитивному значению. В этом случае, помимо использования 'toString()', как предложено в ответах, вы также можете сказать 'this +" "или' this.valueOf() '. –