Скажем, у меня есть этот код:
Boolean.prototype.toString=function toString(){
return this?'1':'0';
};
var object = {
'true':'true',
'false':'false',
'1':'1',
'0':'0'
};
// "true" - this doesn't work
console.log('primitive', object[true]);
// "1" - but these do
console.log('primitive.toString()', object[true.toString()]);
console.log('instance', object[new Boolean(true)]);