立即执行函数报错Uncaught TypeError: (intermediate value) is not a function.
立即执行函数报错Uncaught TypeError: (intermediate value) is not a function.
文章目录
- 立即执行函数报错Uncaught TypeError: (intermediate value) is not a function.
- 前言
- 一、现象
- 二、解决
- 三、原因分析
- 总结
前言
立即执行函数报错Uncaught TypeError: (intermediate value) is not a function.
一、现象
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 如果应用 加载 刚开始加载A应用 window.a,然后加载B应用(window.a);// 单应用切换时, 沙箱:创造一个干净的环境给子应用使用,当切换时可以选择丢弃和回复属性// 快照沙箱: 一年前拍一张照片 一年后再拍一张 (将前后对比的区别保存起来) 应用: 将区别应用回到一年前 或者是回复到一年前后再此恢复到当前// 快照沙箱代码实现class SnapshotSandbox {constructor() {this.proxy = window // window属性this.modifyPropsMap = {} // 记录在window上的修改this.active() // 恢复沙箱(恢复到当前状态)}active() {this.windowSnapshot = {} // 拍照for(let prop in window) {if(window.hasOwnProperty(prop)) {this.windowSnapshot[prop] = window[prop]}}Object.keys(this.modifyPropsMap).forEach(p=>{window[p] = this.modifyPropsMap[p]})}inactive() {for(let prop in window){if(window.hasOwnProperty(prop)) {if(window[prop] !== this.windowSnapshot[prop]) {this.modifyPropsMap[prop] = window[prop];window[prop] = this.windowSnapshot[prop]}}}}}let sandbox = new SnapshotSandbox()// 应用的运行, 从开始到结束,切换后不会影响全局((window)=>{window.a = 1window.b = 2console.log(window.a, window.b)sandbox.inactive()console.log('失活(回到一年前)',window.a, window.b)sandbox.active()console.log('激活(恢复沙箱)',window.a, window.b)})(sandbox.proxy)// 如果是多个子应用不能使用这种方式 // 代理沙箱可以实现多应用沙箱,把不同应用用不同的代理处理</script>
</body>
</html>
二、解决
三、原因分析
出现这种bug的原因:在你的代码中,同时定义了变量、匿名函数或者闭包函数,并且该变量定义在了这两类函数之前,如果变量后面省略了分号,js就会自动解析为匿名函数进行自调,会被认为是变量名而不是方法,从而会导致报错;所以变量后面以及闭包函数后面都需要加上分号。
如下图示例:加上分号后bug得以解决
总结
看到问题不要怕,锤它
立即执行函数报错Uncaught TypeError: (intermediate value) is not a function.相关推荐
- Vue 3 + Vite + SuerMap iClient构建报错Uncaught TypeError utils.inherits is not a function
一.现象 Uncaught TypeError: utils.inherits is not a function 二.问题产生原因 Elasticsearch本身就需要这些东西,以前没有问题是因为W ...
- JS 报错getElementsByClassName.appendChild报错“Uncaught TypeError: s.appendChild is not a function”
getElementsByClassName这个方法返回的是:返回文档中所有指定类名的元素集合.因为集合是没有appendChild这个方法的,所以使用getElementsByClassName这个 ...
- js代码中for循环里绑定onclick事件报错Uncaught TypeError Cannot set properties of undefined (setting ‘className‘)
jsfor循环里绑定onclick事件报错Uncaught TypeError Cannot set properties of undefined (setting 'className') 我想要 ...
- JavaScript立即执行函数报错--立即执行函数原理分析
JavaScript立即执行函数报错 1.'()'在JavaScript环境中有提升运算符优先级和执行函数的作用如果直接在JavaScript环境中执行'()',环境会报出语法错误提示. 2.'()' ...
- 小程序组件报错Uncaught TypeError: Cannot read property 'name' of undefined
小程序组件报错Uncaught TypeError: Cannot read property 'name' of undefined Component({/*** 组件的属性列表*/propert ...
- 【解决】控制台报错Uncaught TypeError: Object(...) is not a function at eval (vue-router.esm-bundler.js
打开http://localhost:8080/,控制台报错 Uncaught TypeError: Object(...) is not a functionat eval (vue-router. ...
- layui报错Uncaught TypeError: tree is not a function
layui报错Uncaught TypeError: tree is not a function tree({ elem: "#classtree" , data: data , ...
- JsonMap对象的获取与前台浏览器报错Uncaught TypeError: Cannot read property ‘map‘ of undefined
JsonMap对象的获取与前台浏览器报错Uncaught TypeError: Cannot read property 'map' of undefined 经过不断排查以后发现是自己的后台传的值出 ...
- layui弹出层,报错:TypeError: layer.open is not a function
在使用layui弹出层时,浏览器出现报错:TypeError: layer.open is not a function 报错错误如图: 修改: 添加 var layer = layui.layer; ...
最新文章
- VS Debug必备技能
- python定义类()中写object和不写的区别
- hadoop完全分布式集群群起
- 【Ubuntu入门到精通系列讲解】文件和目录常用命令速查
- i7跑服务器系统,i7主机做服务器
- ***站长自述挂马经历 提醒挂马者回头是岸
- Python中的彩蛋
- [转]:tbox中数据库的使用
- 微信群怎么设置验证加入_怎么让微信群裂变拉人/拉人进群奖励方案/微信裂变营销方案策划...
- (14) 常用管理类软件需求征集 -- 组织机构管理
- 人体姿态估计的基本概念
- Vsphere平台虚拟机vmdk文件丢失重建
- 自适应数字加密/收藏品NFT市场网站HTML5模版
- 蓝色简洁的企业cms网站权限后台管理模板——后台
- PHP自学教程之PHP语法基础
- 【FreeRTOS】FreeRTOS学习笔记(3)— FreeRTOS任务与协程
- 【STM32-机智云平台】ESP8266模块,如何烧录机智云固件,参考经验贴
- mysql商城热销榜怎么实现_Redis实现商品热卖榜
- 摩尔斯电码转换python编码_python-摩尔斯电码查询器
- 计算机科学创新大赛,计算机学院大学生创新项目入围挑战杯大赛
热门文章
- 7个最佳餐厅应用模板
- Word文件无法正常打开(更新了Office365之后 .docx文件全部变成了 Office Open XML 格式)
- 分享一个替换复杂json串中的节点值或者key-value值的方法
- 【深度学习】残差神经网络
- 强化学习基础1.7 | 状态价值函数
- 三星折叠屏|保持屏幕状态
- 台积电与三星的3nm之争
- 品甜蜜“醇时代”,享幸福“鑫品质”豫鑫糖醇盛装亮相2023生物发酵展
- 4412第一部分 开发板入门
- 计算机网络平台建设,计算机网络课程信息化教学平台建设原稿