Что такое конструктор функций в Node.js? В браузере (по крайней мере, как минимум) функции являются экземплярами Function setTimeout instanceof Function // true Однако в node они не setTimeout instanceof Function // false Итак, что такое конструктор setTimeout, если не Function? Ответ 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
Ответ 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