Почему instanceof буквального числа он возвращает false?

А именно, как возможно видеть в нижнем примере, прототип всех данных объектов - типа Number, но если осуществляется один:

const obj = 9;

obj instanceof Number // false

не переместив этого раньше из-за одного

new Number(obj) instanceof Number // true

Всегда он возвратит false, примеры:

var is = Function.prototype.call.bind(Object.prototype.toString);
var log = console.log.bind(console);
const num = 9;

log(typeof(9));                         // number
log(is(9));                             // [object Number]
log(9 instanceof Number);               // false
log('');

log(typeof(num));                       // number
log(is(num));                           // [object Number]
log(num instanceof Number);             // false
log('');

log(typeof(new Number(9)));             // object
log(is(new Number(9)));                 // [object Number]
log(new Number(9) instanceof Number);   // true
log('');

log(typeof(new Number(num)));           // object
log(is(new Number(num)));               // [object Number]
log(new Number(num) instanceof Number); // true

Почему происходит это?

6
задан 19.03.2017, 22:00
0 ответов