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\’ 来引入。