为了账号安全,请及时绑定邮箱和手机立即绑定

JS的作用域链,内存空间,闭包等等可以参考什么语言来理解?

JS的作用域链,内存空间,闭包等等可以参考什么语言来理解?

幕布斯6054654 2019-02-21 22:18:04
JS的一些高级特性,比如作用域链,内存空间,闭包等等可以参考什么语言来理解?因为我了解JS的原型继承在设计的时候有参考IO这门语言,IO是一门,个人觉得是比JS好理解好多的语言,因为它太简单了。我参考着IO来理解JS的原型继承,原型链和对象方面的内容的话,发现理解的更好,更深刻。虽然JS的其他特性网上有很多的文章来解答,但是发现总是有点深奥,所以希望有人可以推荐下和它类似的语言,但是比较好理解的,然后我去参考着理解。之前在简书上看到一个系列讲解js的文章,说的非常详细,但是发现他讲的内存空间等等内容我还是不能很好的理解,自己的水平有限,求推荐?
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

内存不用太纠结,不同的引擎实现有可能不同,重点是关心常用的数据结构就好,JS 里最常用的无非也就是数组(功能兼容数组、列表、队列、栈)和对象(功能兼容字符串键的Hash表)。

作用域链可以简单的理解,哪写的代码就在其所在的 function 函数体有效(var),而后来的 const 和 let 是块级作用域,即在最近的 {} 内有效,注意一下函数申请和变量申明提升的问题,关于这个可以参考 C# 或 Java,都差不多。

只要函数是一等公民的语言(即函数可以当作引用来传递),基本上都存在闭包。闭包同样遵循上面的原则,写代码的时候,它是在哪个作用域内,运行的时候它就可以访问哪个作用域内的变量。只是在 this 这个问题上要麻烦一点,可以参考:JavaScript 的 this 批向问题深度解析


查看完整回答
反对 回复 2019-02-24
  • 2 回答
  • 0 关注
  • 609 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信