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 &#x27;./test.js&#x27; this输出undefined? 的全部内容, 来源链接: utcz.com/p/934685.html

回到顶部