这是第25篇笔记!
让学习“上瘾”,成为更好的自己!!!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>递归</title>
<script>
/*
*/
// function factorial(num){
// if(num <= 1){
// return 1;
// }else{
// return factorial(num-1) * num;
// }
// }
// 出错写法
// var anotherFactorial = factorial;
// factorial = null;
// console.log(anotherFactorial(4));
// 改进:使用arguments.callee(一个指向正在执行的函数的指针)
function factorial(num){
// 'use strict';
if(num <= 1){
return 1;
}else{
return arguments.callee(num - 1) * num; // 改进
}
}
// 严格模式下,不能通过脚本访问arguments.callee!!
// 进一步改进:使用命名函数表达式
// var factorial = (function f(num){
// 'strict model';
// if(num <= 1){
// return 1;
// }else{
// return f(num - 1) * num; // 改进
// }
// });
console.log(factorial(4));
</script>
</head>
<body>
</body>
</html>