export / import 温故而知新
认知一: 导出的对象被修改,依然会影响原来的对象。
仔细想想这是理所当然的事(说明导出的依然是对象指向内存的地址,所以通常还需要结合深拷贝使用)
/**
export const state = {
select: 0
} export const logstate = () => {
console.log('what the fuck?', state)
}
*/
import { state, logstate } from './lib'
state.select =
console.log('fuckyou', state) // fuckyou { select: 110 }
logstate() // what the fuck? { select: 110 }
认知二:无论是 let 还是 const ,导出的变量都无法修改
/**
export let val = 0
*/
import { val } from './lib'
val = // 报错: "val" is read-only
认知三: import 无法解构 export default {...} 导出的对象,哪怕他真的是导出一个对象!
我们知道,如果我们用常规的 require 导入 export default {...},其实还有一层 default 的:
/**
const state = {
select: 0
} const logstate = () => {
console.log('what the fuck?', state)
} export default {
state,
logstate
}
*/
const what = require('./lib');
console.log(what); // { default: { state: { select: 0 }, logstate: [Function: logstate] } }
而神奇的是,如果使用 Import 就会自动将这一层多余的default移出:
import what from './lib'
console.log(, what) // { state: { select: 110 }, logstate: [Function: logstate] }
但尽管如此,我们依然无法使用解构:
import what from './lib'
import { state, logstate } from './lib'
console.log(state, logstate) // undefined undefined
如果实在想使用解构,只能用最初的require方法了,但要记得加上 .default 哦:
const { state, logstate } = require('./lib').default
console.log(state, logstate) // { select: 0 } [Function: logstate]
export / import 温故而知新的更多相关文章
- 程序间数据共享与传递:EXPORT/IMPORT、SAP/ABAP Memory
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- PL/SQL developer export/import (转)
export/import图标为灰色:原因:相关应用程序没有关联菜单栏 --> Tools --> Import Tables... --> Oracle Import Export ...
- security Export/import
export [-k keychain] [-t type] [-f format] [-w] [-p format] [-P passphrase] [-o outfile] Export one ...
- 自学Zabbix10.1 Configuration export/import 配置导入导出
自学Zabbix10.1 Configuration export/import 配置导入导出 通过导入/导出zabbix配置文件,我们可以将自己写好的模板等配置在网络上分享,我们也可以导入网络上分享 ...
- (转)关于ES6的 模块功能 Module 中export import的用法和注意之处
关于ES6的 模块功能 Module 中export import的用法和注意之处 export default 的用法 export default命令用于指定模块的默认输出.显然,一个模块只能有一 ...
- docker 学习(六) export/import/load/save images
export/import 是一对命令: load/save是一对命令 一: export / import使用 1: 查看镜像: docker ps -a 2:导出镜像:docker ex ...
- docker save/load以及export/import使用测试
对于有些环境需要离线安装的情况,docker以及docker容器都需要能够支持离线安装,对于docker离线安装,比较简单,按照https://www.cnblogs.com/qq931399960/ ...
- 【ABAP系列】SAP ABAP如何在调试查看EXPORT/IMPORT 内存数据
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP如何在调试查看E ...
- 【DB宝50】Oracle异构平台迁移之完全可传输导出导入(Full Transportable Export & Import)
目录 一.简介 1.1.使用场景 1.2.限制条件 二.完全可传输操作步骤 三.案例演示 3.1.环境 3.2.源库操作 3.2.1.将需要传输的用户表空间设置为RO状态 3.2.2.使用Data P ...
随机推荐
- 【AtCoder】ARC081
C - Make a Rectangle 每次取两个相同的且最大的边,取两次即可 #include <bits/stdc++.h> #define fi first #define se ...
- 6-5 移动的盒子 uva12657
较为复杂的一题:有点类似6-1 但是分析完之后比6-1简单 就是按照思路模拟就好! 学会了双向链表 先初始化 link是关键 分析命令 可以大大简化代码 : 反转链表不用反转 改 ...
- 练习|Django-单表
结构目录 页面展示: 1创建Django,创建app01 在modules.py添加 class Book(models.Model): id=models.AutoField(primary_key ...
- bochs配置文件解释说明
############################################### # Configuration file for Bochs ##################### ...
- xhprof扩展安装与使用
目录 一.xhprof扩展安装步骤 二.xhprof的使用 总结 参考资料 一.xhprof扩展安装步骤 xhprof是PHP的一个扩展,最好也直接安装上graphviz图形绘制工具(用于xhprof ...
- 012.Docker私有仓库多Harbor同步部署
一 Harbor主从介绍 harbor官方默认提供主从复制的方案来解决镜像同步问题,通过复制的方式,我们可以实时将测试环境harbor仓库的镜像同步到生产环境harbor,类似于如下流程: Harbo ...
- 观察者模式之ES6实现(一)
一.参考链接 https://github.com/JacksonTian/eventproxy/tree/master/lib 二.代码实现 // eventProxy.js 'use strict ...
- android monitor 汉化 ddms
作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com android.jar\com\androi ...
- BZOJ.3495.[PA2010]Riddle(2-SAT 前缀优化建图)
题目链接 每个城市要么建首都要么不建,考虑2-SAT 这样一个国家内城市两两连边是很显然的,但是边数为O(n^2) 每个国家中仅有一个建首都,考虑新建前缀S[i]=1/0这2n个点表示当前国家的[1, ...
- Ajax csrf跨站请求伪造
方式一: ///仅限js代码在HTML内//// $.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}' }, }); 方式二: // ...