Pru*_*wee 2 javascript node.js
我有一个关于NodeJS for basic语法的基本语法的问题.
在这个存储库中,
https://github.com/alduro/generator-flux-webapp/blob/master/app/templates/src/app.js
它在第10行使用此代码:
var {Router} = require('director');
然后在第40行:
var router = new Router(routes).configure({html5history: true}).init();
这有效.
但是,如果我改变var {Router} = require('director');为var Router = require('director');.
它会抛出异常,
TypeError: Router is not a constructor.
它不再起作用了.
所以我的问题是{variable}是什么意思?
感谢您的时间.
该线var {Router} = require('director');正在利用ES6对象解构.等效的行是var Router = require('director').Router;.该director模块导出一个具有名为的属性的对象Router.解构只是一种简单的方式,用于声明一个名为变量的变量Router,并使用相同名称的对象属性值对其进行初始化.
更新:更改了对象解析链接以指向更好的引用.
要查看此操作的示例,请使用Babel的REPL进行尝试.(Babel曾经是6to5.)
有多种不同的(并且大多数是等效的)方法来完成同样的事情:
var Router = require('director').Router; // Pure ES5
var {Router: Router} = require('director'); // ES6 named destructuring
var {Router} = require('director'); // ES6 destructuring shorthand
import {Router} from 'director'; // ES6 module import
Run Code Online (Sandbox Code Playgroud)