首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

前几天关于arguments的学习札记

2012-09-18 
前几天关于arguments的学习笔记关于Arguments对象?About Argument object最近读书心得,有错误欢迎指正:)Th

前几天关于arguments的学习笔记

关于Arguments对象?About Argument object

最近读书心得,有错误欢迎指正:)Then add up all the numbers between "start" and "end".
Can not invoke functions inside itself, all functions that used in
calculation should be anonymous.
For example:

var abc = function(){// can not invoke "abc"var result = (function(){})();}
===== Chinese Version =====
实现一个匿名函数, 接受两个数字参数, "start" 和 "end", 把 "start" 到 "end" 之间的数 (包括自身) 相加.
不允许在函数内部调用自己, 参与运算的函数均为匿名函数:
var abc = function(){// 不能直接调用 "abc"var result = (function(){})();}

?

?

var sum = function(){ //建立一个匿名函数;    var args = arguments;      if(args.length !== 2){    return !1; //判断参数的length  }    var min = parseInt(args[0], 10), max = parseInt(args[1], 10); //赋值min,max,将第一个第二个参数转换为十进制,如果不是数  值将会返回NaN    if(!isNaN(min) && !isNaN(max)){     if(min === max){      return min;     }        if(min > max){      max = [min, min = max][0]; //判断min,max大小,如果min大于max,交换min与max的值;    }        return min + args.callee.call(null, ++min, max); //循环,每次自身+1,并返回自身,直到max为止  }    return !isNaN(min) ? min : max;     };

?


关于

var min = parseInt(args[0], 10), max = parseInt(args[1], 10); 

?

parseInt是将一个字符串转换成数值而如果

callee is a property of the arguments object. It can be used to refer to the currently executing function inside the function body of that function. This is for example useful when you don't know the name of this function, which is for example the case with anonymous functions.

下面是用callee来实现一个阶乘的函数:

?

function create() {     return function(n) {        if (n <= 1)           return 1;        return n * arguments.callee(n - 1);     };  }    var result = create()(5); // returns 120 (5 * 4 * 3 * 2 * 1)

?

在这个函数中,在n<=1之前,参数都会被自身重复调用一次,当符合条件时,即最后n小于1只返回1执行。

热点排行