js闭包会导致性能下降?请问有没有对现成的网站、网页做Profile(性能分析)的工具

时间:2018-03-04 09:00:02   浏览:次   点击:次   作者:   来源:   立即下载

使用闭包会导致性能降低啊,我试了下。

第①种使用闭包:

function greetingMaker (greeting){ntfunction addName(name){nttreturn greeting + ' ' + name;nt}ntreturn addName;n}nvar dayTimeGreeting = greetingMaker("good day to you");nfor (var i = ⓪; i ①⓪⓪⓪⓪⓪⓪; i++) {ntdayTimeGreeting('linda');n}

第②种不使用闭包:

function greetingMaker② (greeting,name){ntreturn greeting + ' ' + name;n}tnfor(var i = ⓪; i ①⓪⓪⓪⓪; i++ ){ntgreetingMaker②("good night to you

函数定义显然是有开销的,你多写①个inner function就要多生成①个函数执行环境,参数要压栈,声明要提升,扫描变量 etc....

但问题就是,通常我们用闭包都不是你这么用的,面对①个确定的,没必要抽象的需求,我没有必要非得定义①个内部函数然后返回出去。

闭包的本质其实是为了支持函数作为first-class传递的①种技术手段。

而first-class function的实现则提供了编程者更好的抽象能力,得以用①些优雅的手段解决相对难处理的问题上。比如用在各种异步回调里,比如curry化函数里等等等等。

你的例子,我手上Chrome ④③ · closure vs non-closure ①⓪倍差距的执行耗时。然而这并不能说明什么。

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息