美文网首页
arguments 详解

arguments 详解

作者: 天外来人 | 来源:发表于2016-04-27 16:40 被阅读411次

特性:
1 arguments 对象不是一个真正的数组,它类似于数组,没有数组所特有的属性和方法,除了length。例如没有pop 方法。不过可以将其转换为数组

var args = Array.prototype.slice.call(arguments); 
//为什么不用 arguments.slice(0);

因为:能用slice方法的,只要有length属性就行。虽然arguments有length属性,但是没有slice方法,所以呢,Array.prototype.slice()执行的时候,Array.prototype已经被call改成arguments了,因为满足slice执行的条件(有length属性),所以没有报错。

2 arguments 对象仅在函数内部有效,在函数外部调用arguments对象会报错误。
属性

arguments.callee 指向当前指向的函数
arguments.caller 指向调用当前函数的函数,但是此已经不存在了,在非严格模式下可以用function.caller。
arguments.length 指向传递给当前函数的参数数量(实参)
arguments.callee.length 指向当前函数的形参数量(形参)

应用场景:当调用一个函数时候,这个函数的参数数量比它显示声明的参数数量多的时候。
例如:1 检查参数的个数 2模拟函数重载
严格模式
1 function.caller,function.arguments 报错
2 arguments.callee 报错
3 arguments 不再追踪参数的变化

function f(a) {
 a = 2;
 return [a, arguments[0]];
}
f(1); // 正常模式为[2,2]
function f(a) {
 "use strict";
  a = 2;
 return [a, arguments[0]];
}
f(1); // 严格模式为[2,1]

相关文章

  • arguments 详解

    特性:1 arguments 对象不是一个真正的数组,它类似于数组,没有数组所特有的属性和方法,除了length。...

  • arguments属性详解

    描述 arguments 参数,即函数调用的时候传入函数的变量集合(非箭头函数)。这个集合具有 length 属性...

  • Javascript arguments对象详解

    今天我们来看看arguments对象及属性。arguments对象不能显式创建,arguments对象只有函数开始...

  • js中arguments详解

    一、简介 了解arguments这个对象之前先来认识一下javascript的一些功能:其实Javascript并...

  • js中arguments的用法

    arguments特性 **arguments **对象不能显式创建, **arguments **对象只有函数开...

  • Python新起航

    Arguments Immutable arguments are effectively passed “by ...

  • js arguments

    arguments 就是所有的参数arguments 和参数共存!!!!!!arguments 简单应用 argu...

  • 2018-11-22 关于 arguments.callee

    arguments.callee 函数内, 有两个特殊对象: arguments 和 this arguments...

  • javaScript 基础 04

    函数 1.arguments arguments JavaScript还有一个免费赠送的关键字arguments,...

  • css控制利用js传参

    //利用arguments function css(){ if (arguments.length ==2) {...

网友评论

      本文标题:arguments 详解

      本文链接:https://www.haomeiwen.com/subject/wrztrttx.html