Boolean.prototype.identifyYourself = function(t) { console.log("I am " + (this ? 'true' : 'false')); }; false.identifyYourself(); // I am true
Ja, das ist eine Tücke von boxed Primitives, wenn man eine Methode auf einem Primitiven Datentypen aufruft, wird er zu einem Boxed Primitive gecoerced, und dadurch ist this in der Methode ein Objekt und Objekte sind truethy. Deshalb muss man in so einem Fall this ist erst wieder unboxen, das geht mit .valueOf():
Boolean.prototype.identifyYourself = function(t) {
    console.log("I am " + (this.valueOf() ? 'true' : 'false'));
};
false.identifyYourself();
// I am false
Zu Primitves und Boxed Primitives lohnt sich das Kapitel 3 von Kyle Simpsons Buch You Don't Know JS zu lesen.
 nicht angemeldet
 nicht angemeldet Rolf B
 Rolf B Gunnar Bittersmann
 Gunnar Bittersmann MudGuard
 MudGuard JürgenB
 JürgenB Orlok
 Orlok