Undersore的_.now如何运作?

125*_*748 2 javascript browser v8 native-code underscore.js

它看起来不像是用JavaScript编写的.

如果你输入_now控制台,你只能得到

function now() { [native code] }
Run Code Online (Sandbox Code Playgroud)

当你试图查看一些内部工作对浏览器不可见的内置方法时,通常只能得到它.

setTimeout
=>function setTimeout() { [native code] }
Run Code Online (Sandbox Code Playgroud)

_.now完成与JavaScript引擎的"原生代码"的东西吗?

meg*_*wac 6

默认情况下_.now就是Date.now,除了不支持它的环境.凡Date.now不支持_.now将使用此实现,而不是(这同样适用于lodash)

_.now = function() {
   return (new Date()).getTime()
};
Run Code Online (Sandbox Code Playgroud)

正如您的浏览器所支持的Date.now,_.now它只是本机实现的代理


注意:您还可以通过调用使您的任何功能在控制台中显示为本机 Function.prototype.bind

function foo() {console.log('bar');}
var bar = foo.bind(null);

console.log(bar);
// => function () { [native code] }
Run Code Online (Sandbox Code Playgroud)