ES6还需要闭包吗

如题

既然let和const解决了块级作用域的问题,() => {}解决了this的指向问题,那之前es5中的闭包在es6中还有什么实际的使用场景吗

还请大家指教

v1.1搞混了ts和es。。所以关于public和private关键字的问题请大家忽视。。。

阅读 12.9k
6 个回答

闭包与两个特性有关,一是嵌套作用域,另一个是函数当值传递(first-class function),前者能让作用域内部访问外部变量,后者是函数式编程的前提。两者使得 JavaScript 非常灵活,除非你打算把 ES6 当作静态语言来编写,否则你总会用到闭包的。

还是需要吧,比如这种函数柯里化的:

var func = function(){
    var num = 1;
    return function(){
        alert(num);
    }
}

public和private是typescript中的关键字,只是用来做静态检测,并不能真正的做到属性隐藏

通过箭头函数,解决this指向问题,并不是万能的。

比如构造函数、需要结合动态上下文的回调(绑定一个click事件)、在对象上定义方法等等。

当遇到这些情况时,还是得用回传统的function,或者es6的短语法()

这时如果碰到作用域问题,还是得用到闭包。

新手上路,请多包涵

使用{ ... } 这个就相当于闭包了

"JavaScript中闭包无处不在,你只需要能够识别并拥抱它。"

"最后你恍然大悟:原来在我的代码中已经到处都是闭包了,现在我终于能理解他们了。

"理解闭包就好像Neo第一次见到矩阵一样。"

《You Don't Know Javascript》中如是写道。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题