前端模块化雏形

在前端开发中,经常需要多个人一起开发JS文件,当所有JS文件都在全局变量中的时候,会存在问题

// 这是aaa.js
let a=10
console.log(a);
// 这是bbb.js
console.log(a);
let a=20;
// 报错,因为在aaa已经定义过a变量
console.log(a);

上面的bbb.js中定义的a变量会报错,这是由于浏览器在编译时发现全局变量中有一个let定义的a变量,这就为前端开发带来很多不方便,所以提出前端模块化开发

雏形

最初用的闭包函数

// 这是aaa.js
(function(){
let a=10
let b=20
console.log(a);//10
console.log(b);//20
})()
// 这是bbb.js
(function(){
let a=20
console.log(a);//20
console.log(b);//报错(未定义)
})()

但这样会导致代码复用率极低,因为每个闭包函数中的变量只能在函数内部使用,如果想使用变量需要在函数内部将需要使用的数据以对象的形式返回,然后用一个全局变量的对象来接收

// 这是aaa.js
var obj=(function(){//用obj接收返回的数据
let a=10
let b=20
console.log(a);//10
console.log(b);//20
return {a,b};
})()
// 这是bbb.js
(function(){
let a=20
console.log(a);//20
console.log(obj);//{a: 10, b: 20}
})()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值