木灵鱼儿

木灵鱼儿

阅读:307

最后更新:2022/10/22/ 15:51:18

块作用域的代替方案

随着ES6的let和const的声明,我们终于可以创建完整,不受约束的块作用域,但是这个功能终究是新的功能,老设备怎么办呢,它不支持啊!

所以我们现在都是使用新的语法,再打垫片(polyfill)去支持新旧设备。

那么块级作用域怎么实现旧设备也能用呢?

以这段为例:

{
    let a = 2;
    console.log(a); // 2
}

console.log(a); // ReferenceError

分析之前说过的,with和catch,你会发现只能通过使用catch的方式实现这个功能。

try {
    throw 2;
} catch (a) {
    console.log(a); // 2
}
console.log(a); // ReferenceError

虽然这么写非常丑陋,但是这也是不得已的办法,事实上我们的项目在往旧设备适配的时候,往往会使用这种方式进行转换,只是我们不需要手动这么写罢了。

版权申明

本文系作者 @木灵鱼儿 原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

关于作者

站点职位 博主
获得点赞 0
文章被阅读 307

相关文章

目录树