javascript - Node.js 中的函数构造函数是什么?

标签 javascript node.js prototypal-inheritance

在浏览器中(至少是chrome)函数是Function

的实例
setTimeout instanceof Function
// true

但是在 Node 中,它们不是

setTimeout instanceof Function
// false

如果不是Function,那么setTimeout的构造函数是什么?

最佳答案

看来构造函数是Function,不过是另一个领域的构造函数。

如果你运行这段代码

console.log(Object.getOwnPropertyNames(setTimeout.constructor.prototype));

您会得到一个包含典型 Function.prototype 方法的数组,例如 callapplybind

所以我想这有点类似于从 iframe 借用 setTimeout 时在网络浏览器中发生的情况:

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

关于javascript - Node.js 中的函数构造函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40444294/

相关文章:

javascript - Node js 原型(prototype)对象 'self' var 没有为回调存储正确的上下文

javascript - 为什么 JavaScript 使用原型(prototype)继承来实现?

javascript - 文本框显示

node.js - 在mongodb Node js中更新双重嵌套嵌入文档而不使用数字索引

javascript - EBUSY : resource busy or locked, lstat 'C:\hiberfil.sys'

node.js - POST 请求在 Nodejs Expressjs MVC 应用程序中仅工作一次

javascript - 如何在 JavaScript 中重新加载另一个选项卡?

javascript - 可以使用带有 int 参数的 jQuery outerHeight 函数吗?

javascript - 使用 gulp-sourcemaps 的文件名不正确

javascript - ES6 类构造函数不能作为普通函数调用的原因是什么?