python与javascript 引入模块的方法对比

1、引入整体模块对比

python

方法一:

# 引入全部函数
from xxx import *

# 直接使用模块里面的各函数或者属性
test()

方法二:

# 引入全局的模块
import globalModules

# 使用
globalModules.xxxx

javascript

# 引入
import * as custom from 'xxx'

# 使用
custom.xxxx

注意:此类引入,只能是js 利用export 导出,而非export default

 

2、引入模块中具体的函数或者属性

python

# 引入全部函数
from xxx import test1,test2

# 直接使用模块里面的各函数或者属性
test1()
test2()

javascript

情况1:引入具名的函数或者属性,需要加括号

// 引入
import { test1 } from 'xxx'
// 使用
test1()

情况2:引入导出为default的模块,不需要加括号

// 引入
import test1 from 'xxx'
// 使用
test1()

 

3、其他

javascript 中的

import  'xxx'

仅仅代表执行这个模块,不引入模块中的具体的函数或者其他属性等!而python 则代表 直接引入模块的全部,并且可以使用模块的所有的属性!!!

 

最新的es中又有import() 这种动态加载(import xxx from  'xxx.js' 为静态加载,姑且可以理解为引入模块后最先加载,优先于执行下面的代码!!!)

button.addEventListener('click', event => {
  import('./dialogBox.js')
  .then(dialogBox => {
    dialogBox.open();
  })
  .catch(error => {
    /* Error handling */
  })
});

可以实现按需加载等功能!!!
例:

 

 

 

 

 

 

 

 

 

---------------------------------------------更新于2020年3月1日---------------------------------------------

 

1、javascript的导出,如果放在最后面导出,则必须加大括号!

2、javascript的模块理论上被引入后,只能读取不能更改,但是如果导出的是一个对象,则可以改对象的值!不过,这种写法很难查错,建议凡是输入的变量,都当作完全只读,不要轻易改变它的属性。

当然,也有模块可以被更改的情况,那么就要注意,加入有a ,b ,c 三个模块,如果b模块引入a模块后,把a模块某个属性更改了,那么c 模块引用a 模块的时候,a模块里面的属性应该是更改之后的!

3、javascript的模块 import命令是编译阶段执行的,在代码运行之前。

4、如果是export {}  这种方式导出,则import   的时候可以用   import  xxx  from  '.xxx/js'    或者 使用import  { xxx,  xxx  }   from  '.xxx.js'(这种方式得“点”出来,区别于export  default 不需要点出来) ,两种方式都可以  !!!  

 

 

通常:

我们用export  {}   导出,  然后用import  {}   from  'xxx'  导入。

我们用export deault  变量 导出, 然后用import xxx from  'xxx'   来引入。

  

 

posted @ 2019-12-03 10:25  茶记忆  阅读(808)  评论(0编辑  收藏  举报