解释以下JavaScript语法:var fib = require('algorithms.js')。Math.fibonacci;

时间:2014-05-30 12:23:01

标签: javascript syntax

我无法理解以下代码的含义:

var fib = require('algorithms.js').Math.fibonacci;

我看到这是在名为fib的var中存储'algorithms.js'但是'.Math.fibonacci;'是什么意思?

完整来源:https://github.com/felipernb/algorithms.js/wiki/Fibonacci

2 个答案:

答案 0 :(得分:2)

require函数将外部文件读取为JavaScript模块。它基于CommonJS(http://wiki.commonjs.org/wiki/Modules/1.1)中描述的模块概念,目前在lo

中实现

简而言之require() created将模块作为对象提供。 .Math.fibonacci访问属性Math和子属性fibonacci,它本身就是一个函数。毕竟,它只是访问该功能的一种较短方式:

// only loads the JavaScript module
var algorithms = require('algorithms.js');
// calls the function with the fully qualified name:
algorithms.Math.fibonacci(10);

// decalare an abreviation for the function:
var fib = algorithms.Math.fibonacci;
// now you can call:
fib(10);

答案 1 :(得分:1)

修改

您可以在source code

中阅读
var fib = require('algorithms.js').Math.fibonacci;

将存储在变异对象函数导出的Math.fibonacci对象中,并定义为 algorithms.js

我建议你requirejs更好地了解脚本加载器的工作原理