深入理解JavaScript中的函数操作
Posted 古兰精
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解JavaScript中的函数操作相关的知识,希望对你有一定的参考价值。
匿名函数
对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于javascript而言,匿名函数是一个很重要且具有逻辑性的特性。通常,匿名函数的使用情况是:创建一个供以后使用的函数。
简单的举个例子如下:
window.onload = function() { alert(‘hello‘); } var templateObj = { shout:function() { alert(‘作为方法的匿名函数‘) } } templateObj.shout(); setTimeout(function() { alert(‘这也是一个匿名函数‘); },1000)
上面的一个代码片段我就不做过多无用解释了,比较常规。
递归
递归,说白了,就是自己调用自己,或者调用另外一个函数,但是这个函数的调用树的某一个地方又调用了自己。所以递归,就产生了。
普通命名函数的递归
拿普通命名函数的递归最好的举例就是用最简单的递归需求:检测回文。
回文的定义如下:一个短语,不管从哪一个方向读,都是一样的。检测的工作当然方法多样,我们可以创建一个函数,用待检测的回文字符逆序生成出一个字符,然后检测二者是否相同,如果相同,则为回文字符。
但是这种方法并不是很有逼格,确切的说,代价比较大,因为我们需要分配并创建新的字符。
所以,我们可以整理出如下简洁的办法:
- 单个和零个字符都是回文
- 如果字符串的第一个字符和最后一个字符相同,并且除了两个字符以外,别的字符也满足该要求,那么我们就可以检测出来了这个是回文了
function isPalindrome(txt) { if(txt.length<=1){ return true; } if(txt.charAt(0)!= txt.charAt(txt.length-1)) return false; return isPalindrome(txt.substr(1,txt.length-2)); }
https://segmentfault.com/a/1190000011792660
以上是关于深入理解JavaScript中的函数操作的主要内容,如果未能解决你的问题,请参考以下文章
深入理解javascript中的立即执行函数(function(){…})()