Невозможно изменить прототип String
, поскольку это приведет к изменению всех экземпляров String, которые вы создаете после выполнения этой функции.
Я не вижу необходимости иметь метод для нативного объекта, который работает только внутри определенной области действия функции. Какой вариант использования? Вы всегда можете добавить статический метод к объекту String
или метод экземпляра к прототипу String
(заметьте, это не очень хорошая практика) и использовать его только внутри test
.
Вы также можете создать новый объект, который вы можете использовать для этой цели, хотя вы теряете элегантность вызова to_selector
непосредственно из строкового объявления:
var string2 = function(str) {
this.str = str;
};
string2.prototype = {
to_selector: function() {
return '#' + this.str;
},
toString: function() {
return this.str;
}
};
function test(){
asd = new string2("asd");
return asd.to_selector();
}
Но опять же, я не понимаю, как это было бы удобно вообще.