Ответ 1
Кажется, что конструктор Function
, но один из другого царства.
Если вы запустите этот код
console.log(Object.getOwnPropertyNames(setTimeout.constructor.prototype));
вы получаете массив с типичными методами Function.prototype
, такими как call
, apply
и bind
.
Итак, я думаю, это несколько похоже на то, что происходит в веб-браузерах, когда вы занимаете setTimeout
из iframe:
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
var win = iframe.contentWindow;
console.log(win.setTimeout instanceof Function); // false
console.log(win.setTimeout instanceof win.Function); // true