vue3 + vite 中 import 引入js文件 import './test.js' this输出undefined?
// test.js(function(fun) {
fun()
})(function() {
console.log(this)
})
// A.js
import './test.js'
这里this输出undefined
但是在vue2 中 request引入
this则不是undefined
我想知道是什么原因
说vue3 没this的这是我没想到的
然后我又写了个demo 看了下
index.html
<!DOCTYPE html><html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>import</title>
</head>
<body>
<script type="module">
import './test.js'
</script>
</body>
</html>
test.js
(function(fun) { fun()
})(function() {
console.log(this)
})
启动服务,打开浏览器输出还是undefined
回答:
静态的 import 语句用于导入由另一个模块导出的绑定。无论是否声明了 strict mode,导入的模块都运行在严格模式下。在浏览器中,import 语句只能在声明了 type="module" 的 script 的标签中使用
严格模式下,执行函数时没有执行主体,因此this指向undefined,非严格模式下的执行主体默认是window,因此this指向window。
回答:
vue3中不存在this
以上是 vue3 + vite 中 import 引入js文件 import './test.js' this输出undefined? 的全部内容, 来源链接: utcz.com/p/934685.html