Вы, кажется, заменяете весь prototype
объект для String
своим объектом.Я сомневаюсь, что это даже сработает, не говоря уже о вашем намерении.
Свойство prototype
недоступно для записи, поэтому присвоения этому свойству молча завершаются неудачей ( @ Frédéric Hamidi ).
Использование обычного синтаксиса работает, хотя:
String.prototype.a = function() {
alert('a');
};
var s = "s";
s.a();