javascript Arguments对象之length、callee属性

1、length属性,我们可以利用Arguments对象的length属性来获取实际传递进的参数有几个。

function a(x, y, z) {

//arguments.callee指向函数a(),arguments.callee.length==a.length;

alert(arguments.callee.length);

//输出5

alert(arguments.length);

if (arguments.callee.length != arguments.length) {

//判断形参与实参个数是否相等,不相等则不执行

return false;

}

alert("执行");

};

a(1,2,3,4,5);

2、callee属性,Arguments对象的callee属性,指向当前调用的函数,可以利用它来进行函数自身的重载。在闭包中应用的也比较广泛。

var i = 0;

function b(num) {

if (num < 10) {

num++;

i++;

//如果有参数,callee也要把参数带上;

arguments.callee(num);

} else {

//输出2次

alert("调用了"+i+"次callee!");

}

}

b(8);

Arguments.callee在闭包中的应用,它提供了一种递归调调用的功能。

//用arguments.callee计算10的阶乘,例如: 1×2×3×4×5×6×7....

function c(x) {

return x > 1 ? x * arguments.callee(x - 1) : 1

} (10);

//输出6

alert(c(3));

//输出3628800

alert(c(10));

javascript Arguments对象之length、callee属性

时间: 2024-10-07 22:45:41

javascript Arguments对象之length、callee属性的相关文章

JavaScript arguments对象

1.在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性.arguments非常类似Array,但实际上又不是一个Array实例.可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可). 1 Array.prototype.testArg = "test"; 2 function funcArg() { 3 alert(funcA

JavaScript arguments对象(转载)

1.在JavaScript中,arguments对象是比较特别的一个对象,实际上是 当前函数的一个内置属性.arguments非常类似Array,但实际上又不是一个Array实例.可以通过如下代码得以证实(当然,实际上,在函数 funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可). 1 Array.prototype.testArg = "test"; 2 function funcArg() { 3 alert(fun

javascript arguments对象研究--针对jquery源码研究再研究

外部插件: $.fn.tinytip = function(text, customOptions) { debugger; if (text && typeof text === 'object'){ customOptions = text; text = customOptions.tooltip; } var options = $.extend({}, tooltip_options, customOptions); options.tooltip = text; if (typ

javascript Arguments对象——函数的实际参数

在javascript函数体内,标识符arguments具有特殊含义.它是调用对象的一个特殊属性,用来引用Arguments对象. Arugments对象就像数组,注意这里只是像并不是哈. javascript函数体内,arguments像数组(并不是真的数组,是一个Arguments对象,再次强调)一样,有length属性,可以代表传给函数的参数的个数. 引用一个形式参数可以用参数名,也可以用arguments[]数组形式,其中arguments[0]表示第一个参数. 所以,javascrip

JavaScript arguments对象浅析

arguments对象 概念 用法 属性 arguments对象 概念 arguments 是一个类数组对象.代表传给一个function的参数列表. 用法 function a() { console.log(arguments); } a("A", "b", 1); 输出 ["A", "b", 1] 属性 arguments.callee 指向当前执行的函数. 递归中常用,避免函数修改后出错,提高代码的安全性.稳定性. a

JavaScript arguments 对象

1.arguments当然只在function体内才有意义, arguments.length 返回的是传入function的实参个数. <script type="text/javascript"> window.onload = function() { (function(arg1, arg2) {      alert(arguments.length); //0    alert(arguments.callee.length);//2 })(); } </

Javascript检查对象是否存在某个属性

1.hasOwnPropertyvar o={x:1};o.hasOwnProperty("x");    //true,自有属性中有xo.hasOwnProperty("y");    //false,自有属性中不存在yo.hasOwnProperty("toString"); //false,这是一个继承属性,但不是自有属性 使用undefined判断 自有属性和继承属性均可判断. 2. undefinedvar o={x:1};o.x!==

jacascript 函数参数与 arguments 对象

前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 调用函数时,实参和形参需要一一对应,但如果参数多了的话,会很苦恼: 我们可以用键值对(字面量对象)的方式传参,这样参数的顺序就无关紧要了: <script type="text/javascript"> function test4(name,age,height,pos){ return name+age+height+pos; } console.log(test4('Shan

使用 arguments 对象

arguments 对象表示参数集合,它是一个伪类数组,拥有与数组相似的结构,可以通过数组下标的形式访问函数实参值,但是没有基础 Array 的原型方法. //函数没有定义形参,但是在函数体内通过 arguments 对象可以获取传递给该函数的每个实参值. function f () { //定义没有形参的函数 for(var i = 0; i < arguments.length; i++ ) { //循环读取函数的 arguments 对象 alert(arguments[i]); //显示