立即执行函数报错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.相关推荐

  1. Vue 3 + Vite + SuerMap iClient构建报错Uncaught TypeError utils.inherits is not a function

    一.现象 Uncaught TypeError: utils.inherits is not a function 二.问题产生原因 Elasticsearch本身就需要这些东西,以前没有问题是因为W ...

  2. JS 报错getElementsByClassName.appendChild报错“Uncaught TypeError: s.appendChild is not a function”

    getElementsByClassName这个方法返回的是:返回文档中所有指定类名的元素集合.因为集合是没有appendChild这个方法的,所以使用getElementsByClassName这个 ...

  3. js代码中for循环里绑定onclick事件报错Uncaught TypeError Cannot set properties of undefined (setting ‘className‘)

    jsfor循环里绑定onclick事件报错Uncaught TypeError Cannot set properties of undefined (setting 'className') 我想要 ...

  4. JavaScript立即执行函数报错--立即执行函数原理分析

    JavaScript立即执行函数报错 1.'()'在JavaScript环境中有提升运算符优先级和执行函数的作用如果直接在JavaScript环境中执行'()',环境会报出语法错误提示. 2.'()' ...

  5. 小程序组件报错Uncaught TypeError: Cannot read property 'name' of undefined

    小程序组件报错Uncaught TypeError: Cannot read property 'name' of undefined Component({/*** 组件的属性列表*/propert ...

  6. 【解决】控制台报错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. ...

  7. layui报错Uncaught TypeError: tree is not a function

    layui报错Uncaught TypeError: tree is not a function tree({ elem: "#classtree" , data: data , ...

  8. JsonMap对象的获取与前台浏览器报错Uncaught TypeError: Cannot read property ‘map‘ of undefined

    JsonMap对象的获取与前台浏览器报错Uncaught TypeError: Cannot read property 'map' of undefined 经过不断排查以后发现是自己的后台传的值出 ...

  9. layui弹出层,报错:TypeError: layer.open is not a function

    在使用layui弹出层时,浏览器出现报错:TypeError: layer.open is not a function 报错错误如图: 修改: 添加 var layer = layui.layer; ...

最新文章

  1. VS Debug必备技能
  2. python定义类()中写object和不写的区别
  3. hadoop完全分布式集群群起
  4. 【Ubuntu入门到精通系列讲解】文件和目录常用命令速查
  5. i7跑服务器系统,i7主机做服务器
  6. ***站长自述挂马经历 提醒挂马者回头是岸
  7. Python中的彩蛋
  8. [转]:tbox中数据库的使用
  9. 微信群怎么设置验证加入_怎么让微信群裂变拉人/拉人进群奖励方案/微信裂变营销方案策划...
  10. (14) 常用管理类软件需求征集 -- 组织机构管理
  11. 人体姿态估计的基本概念
  12. Vsphere平台虚拟机vmdk文件丢失重建
  13. 自适应数字加密/收藏品NFT市场网站HTML5模版
  14. 蓝色简洁的企业cms网站权限后台管理模板——后台
  15. PHP自学教程之PHP语法基础
  16. 【FreeRTOS】FreeRTOS学习笔记(3)— FreeRTOS任务与协程
  17. 【STM32-机智云平台】ESP8266模块,如何烧录机智云固件,参考经验贴
  18. mysql商城热销榜怎么实现_Redis实现商品热卖榜
  19. 摩尔斯电码转换python编码_python-摩尔斯电码查询器
  20. 计算机科学创新大赛,计算机学院大学生创新项目入围挑战杯大赛

热门文章

  1. 7个最佳餐厅应用模板
  2. Word文件无法正常打开(更新了Office365之后 .docx文件全部变成了 Office Open XML 格式)
  3. 分享一个替换复杂json串中的节点值或者key-value值的方法
  4. 【深度学习】残差神经网络
  5. 强化学习基础1.7 | 状态价值函数
  6. 三星折叠屏|保持屏幕状态
  7. 台积电与三星的3nm之争
  8. 品甜蜜“醇时代”,享幸福“鑫品质”豫鑫糖醇盛装亮相2023生物发酵展
  9. 4412第一部分 开发板入门
  10. 计算机网络平台建设,计算机网络课程信息化教学平台建设原稿