【文件属性】:
文件名称:babel-plugin-tailcall-optimization:JavaScript的尾调用优化!
文件大小:39KB
文件格式:ZIP
更新时间:2021-01-30 05:19:15
javascript babel tail-call-optimization BabelJavaScript
babel-plugin-tailcall优化
JavaScript的尾调用优化!
安装
npm install babel-plugin-tailcall-optimization --save-dev
并添加到您的.babelrc :
"plugins" : [ "tailcall-optimization" ]
如果您使用babel @ 6,请使用babel-plugin-tailcall-optimization@1软件包
它是如何工作的?
我们使用while循环通过尾调用来重写函数。 带尾调用的原始函数:
function counter ( n , acc = 0 ) {
if ( n === 0 ) {
return acc
} else {
return counter ( n - 1 , acc + 1 )
}
}
被重写为:
function counter ( n , acc = 0 ) {
var _repeat = true ;
var _n , _acc ;
while ( _repeat ) {
【文件预览】:
babel-plugin-tailcall-optimization-master
----.gitignore(24B)
----README.md(2KB)
----test()
--------implicitReturn.js(273B)
--------counter.js(735B)
--------multipleCalls.js(1KB)
--------emptyReturn.js(306B)
--------recursiveWithClosure.js(971B)
--------fibonacciSeq.js(390B)
----examples()
--------implicitReturn.js(148B)
--------counter.js(142B)
--------multipleCalls.js(270B)
--------multipleCallsInArrowFnWithTernary.js(208B)
--------emptyReturn.js(67B)
--------recursiveWithClosure.js(277B)
--------multipleCallsWithTernary.js(213B)
--------fibonacciSeq.js(166B)
--------counterWithTernary.js(109B)
--------counterAsArrowFnWithTernary.js(98B)
----LICENSE(1KB)
----package.json(1KB)
----src()
--------lib.js(4KB)
--------findTailCalls.js(1KB)
----.babelrc(34B)
----benchmark()
--------fibonacciSeq.js(816B)
----testUtils.js(1KB)
----.npmignore(40B)
----yarn.lock(97KB)