Что здесь происходит? Просто, когда я думал, что знаю JS внутри и снаружи, этот камень появляется.
String.prototype.doNothing = function() {
return this;
};
alert(typeof 'foo'.doNothing()) // object
alert(typeof 'foo') // string
Это разбивает некоторые вещи, которые ожидают строку, например метод jQuery .text(str)
.