【笔记】js Function类型 内部方法callee

运用function实现阶乘 以往的做法是如下的

function factorial(num){
             if(num <= 1){
                 return 1;
             }else{
                 return num * factorial(num - 1);
             }
         }

但是如果一旦函数名改变 函数内部的递归调用行数也要进行改变 重用性很不好所以可以使用function 内部的callee()方法,此方法是function 类型内部的一个属性,它是一个指针指向函数参数对象的函数,即callee所在函数的本身

所以以后的阶乘可以这样写了

function factorial(num){
             if(num <= 1){
                 return 1;
             }else{
                 return num * callee(num - 1);
             }
}
时间: 2024-10-12 08:13:45

【笔记】js Function类型 内部方法callee的相关文章

JS function的定义方法,及function对象的理解。

废话篇: 今天看到了javascript的原型链,各种指向,各种对象有木有,各种晕,各种混淆有木有.兼职是挑战个人脑经急转弯的极限啊.不过,最终这一难题还是被我攻克了,哇咔咔.现在就把这东西记下来,免得到时候又忘了就悲催了.... 正文篇: function的定义方法,及function对象的理解. 在我大js中秉承着一切都是对象的原则,不论是方法还是其他都不例外. 我们在使用java的时候经常要编写方法,这时候其用的关键字是function,而在js中我们在编写函数的时候也是用这个关键字,所以

CEF3中js调用delphi内部方法

在CEF1中JS调用delphi的方法已经贴过:http://www.cnblogs.com/Delphi-Farmer/archive/2013/05/17/3083794.html 但是CEF3升级了,貌似内核都不一样了,CEF1中的方法失效了,查阅了一些资料,得出如下结果: delphi代码: interface uses ceflib;//其它 type //这里建议用class 不建议用class(TThread) 不然有些地方要报错 TMyExtension = class(TThr

Js中关于内部方法、实例方法、原型方法、静态方法的个人见解。

function foo(name){    this.name=name;    // 实例方法    this.GetName=function(){        console.log("my name is "+name);        GetId();    }    // 内部方法    var GetId = function(){        console.log("I have no id..");    }} // 类方法foo.SayH

js判断类型的方法

在实际项目开发中,可能经常会遇到数据类型的判断,我也是经常去度娘,没有仔细的总结过,最近闲下来就做一个总结吧. javascript的基本数据类型有:Undefined.Null.Boolean.Number.String.还有一种引用数据类型Object,且在Object的基础上继承出更多的类型,如Array,Date,Function等,当然还包括我们自己创建的构造函数: 那怎样比较严谨的去判断数据的类型,在开发中就显得比较重要,度娘的时候看到了很多方法,归结起来无非三种: 1.constr

JS浏览器类型推断方法

在网站的前端开发,浏览器兼容性问题这已经让我们抢,Chrome但也生出不知道多少麻烦,我们增加. 浏览器兼容性将由前端开发框架解决的第一个问题.要解决的兼容性问题必须首先准确推断浏览器的类型和它的版本号. JavaScript是前端开发的主要语言.我们能够通过编写JavaScript程序来推断浏览器的类型及版本号. JavaScript推断浏览器类型一般有两种办法.一种是依据各种浏览器独有的属性来分辨,还有一种是通过分析浏览器的userAgent属性来推断的.在很多情况下.值推断出浏览器类型之后

【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型

前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 7.位置方法 8.迭代方法 9.归并方法 在实例中介绍,实例如下 /* Array类型 js数组中的每一项可以用来保存任何类型的数据:js数组的大小是可以动态调整的 */ var colors = ["red", "blue", "green"];

Function类型(JS高程3)—— JS学习笔记2015-6-29(第70天)

Function 类型 函数是对象 具有属性和方法,函数名实际上是一个指向函数对象的指针 没有重载: 函数声明和函数表达式 函数声明: function sum (num1, num2){ return num1 + num2; } 函数表达式: var sum = function(num1, num2){ return num1 + num2; };       //  这里是有分号的 二者基本上没有太大的区别,值得注意的是,函数表达式后面是有分号的: 还有一点就是,函数声明之前是可以调用函

js函数的内部属性---arguments,callee,caller

在接下来的几篇文章中,我大家谈谈函数的内部属性,arguments,callee,caller (1)arguments,是一个类数组对象,其中包含了传入函数的所有参数,主要用途是,保存函数的参数: 代码1: function aa(b){alert(arguments);} aa(4); function aa(a,b,c,d){alert(arguments.length);} aa(1,2,3,4); function aa(a,b,c,d){alert(arguments[2]);} a

由js apply与call方法想到的js数据类型(原始类型和引用类型)

原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b,那么此时第一个参数就为a,没有则为null),call方法第二个参数为一个列表,可以是 obj.call(null, 1,2,3,4); 而apply第二个参数为数组.这就是区别,下面来说说对它们的认识. apply最常用的就是查找数组中的最大与最小值,还可以将2个数组合并: var max=Mat