导入并使用es6调用函数

时间:2015-07-23 23:10:32

标签: javascript ecmascript-6 babeljs

此前:

var debug = require('debug')('http')
  , http = require('http')
  , name = 'My App';

使用es6,如何像第一行一样立即导入和调用?

import debug from 'debug'();

是不是吗?

3 个答案:

答案 0 :(得分:34)

你需要两行:

import debugModule from 'debug';
const debug = debugModule('http');

导入语法是声明性导入语法,它不执行任何函数。

答案 1 :(得分:3)

  

是不是吗?

正确。请记住,import语句不仅仅是简单的require()语句 - 它还会创建“已加载”模块与局部变量的绑定。

即,

import debug from 'debug'();

...在行为/语义上更接近

var debug = require('debug');

...而不是简单地

require('debug');

类似于commonjs风格的模块加载器显然会在某些时候崩溃,但在一天结束时,由于import debug from 'debug'实际上没有解决的简单明了的事实,这是一个“不可能”。你可以调用(或以其他方式引用)的任何东西。

答案 2 :(得分:-15)

import http from "debug"; // not sure if this is the desired effect