2015-01-05 5 views
0

Я пытаюсь расширить метод до прототипа .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… 
} 

Как получить строковое значение вместо строкового объекта?

+0

Строка объекта ** это ** строка, для всех практических целей. То, что вы видите на консоли, - это артефакт некоторых внутренних механизмов, в сочетании с тем, как работает 'console.log'. Во всех других контекстах строковый объект по существу идентичен его примитивному значению. В этом случае, помимо использования 'toString()', как предложено в ответах, вы также можете сказать 'this +" "или' this.valueOf() '. –

ответ

5

Вам нужно позвонить toString()

String.prototype.test = function() { 
    console.log(this.toString()) 
} 
Смежные вопросы