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星
- 暂无评论信息
