Parece ser que cuando un booleano primitiva se pasa como primer argumento a call
o apply
, es automático en caja en un objeto Boolean
. Esto es claro en Firebug en Firefox 4:
>>> (function() { return this; }).call(false)
Boolean {}
En el inspector de Chrome, es confuso al principio, pero un poco de sondeo revela la verdad:
>>> (function() { return this; }).call(false)
false
>>> typeof (function() { return this; }).call(false)
"object"
objetos
Todo JavaScript son "Truthy", incluso new Boolean(false)
y new Number(0)
. Por lo tanto, al utilizar dos operadores de negación (el truco !!
) los lanza a un booleano true
.
¡Lo amo! WTF javascript ?! – Prestaul
, así que supongo que la respuesta a mi pregunta de cierre es cuándo es un 'Boolean'. – Domenic