定义了一个js文件a.js,export 抛出方法。
在b.js中调用a,
在不通过函数传参的方式,有没有什么其他方法在a中获得b的作用域变量
实际场景时,vue项目中,将渲染配置抽出js文件,但是js文件内的模板,依赖h函数。
vue文件作用域下,没有这个问题。
// a.js
export const a = () => {
console.log(bb)
}
// b.js
import {a} from "a.js"
const bb = 1;
a();
定义了一个js文件a.js,export 抛出方法。
在b.js中调用a,
在不通过函数传参的方式,有没有什么其他方法在a中获得b的作用域变量
实际场景时,vue项目中,将渲染配置抽出js文件,但是js文件内的模板,依赖h函数。
vue文件作用域下,没有这个问题。
// a.js
export const a = () => {
console.log(bb)
}
// b.js
import {a} from "a.js"
const bb = 1;
a();
可以作为window
对象的属性从而变成全局变量:
// b.js
window.bb = 1;
// a.js
console.log(window.bb);
但这是一种编程陋习,是 JS 及其部分开发者被一些人嘲讽乃至鄙视的诸多原因之一。
推荐写法——明确传递参数:
// b.js
a(bb);
// a.js
export const a = (bb) => {
console.log(bb)
}
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决