`

奇怪的 Arguments 对象

阅读更多
/*
注意每个浏览器的实现方式不同,他们处理的方法也不同.
官网原文:
      There is no uniform handling of a variable named arguments amongst the various script engine implementations.
    Example:
*/
<script> 
    function foo() 
    { 
         document.write(arguments); 
         document.write(arguments[0]); 
         eval("arguments = 10;"); 
         document.write(arguments); 
         document.write(arguments[0]); 
    } 
    foo("test"); 
</script> 
/*
      Output: 
            IE: [object Object]test[object Object]test 
            FF: [object Object]test10undefined 
            Opera: testtest10undefined 
            Safari: [object Arguments]test10undefined 
[color=red]Note:[/color] 
     Refer §10.1.6 - arguments is added as a {DontDelete} property to the “variable object” before the variable instantiations steps (§10.1.3) take place. Now, consider the following: 
*/
<script> 
      function foo()  
      { 
           document.write(arguments); 
           document.write(arguments[0]); 
           arguments = 10; 
           document.write(arguments); 
           document.write(arguments[0]); 
      } 
      foo(42); 
</script>
/*
 And here is the outputs: 
                IE: [object Object]4210undefined 
                FF: same as IE 
                Opera: 424210undefined 
                Safari: [object Arguments]4210undefined 
[color=red]Note: [/color]
     In JScript arguments isn‟t included in the variable context that is used by the eval, so the eval‟ed assignment isn‟t actually changing the value of the enclosing functions arguments variable.
*/
分享到:
评论

相关推荐

    arguments对象的使用

    在JavaScript编程语言中,`arguments`对象是一个非常重要的特性,特别是在处理函数参数时。它不是一个真正的数组,而是一个类数组对象,提供了访问函数调用时传递的所有参数的途径。无论函数定义了多少个形式参数...

    Arguments对象作用深度研究.pdf

    Arguments对象是JavaScript中一个特殊的数据结构,主要用于在函数内部存储传递给函数的所有参数。无论函数定义了多少个参数,Arguments对象都会包含所有实际传递的参数。这篇深度研究主要探讨了Arguments对象的几个...

    Javascript学习笔记之函数篇(四):arguments 对象

    JavaScript中的arguments对象是一个特殊对象,它代表当前正在执行的函数的参数集合。这个对象可以在函数体内直接使用,无须提前声明参数名即可访问参数。每一个JavaScript函数作用域内都有一个名为arguments的局部...

    js arguments对象应用介绍

    在JavaScript中,所有的函数参数都会被自动存储在arguments对象中,它是一个类数组对象,允许我们在函数内部通过这个对象访问所有传递给函数的参数。 在正式开始之前,先简要回顾一下arguments对象的基本概念。...

    Javascript中的arguments对象

    JavaScript中的arguments对象是一个非常有用的内置对象,它存在于所有函数体内,特别是当函数被调用时。它为函数提供了一种访问所有传递给函数的参数的方法。由于JavaScript本身不支持函数重载的机制,arguments对象...

    javascript内置对象arguments详解

    JavaScript中的内置对象arguments是一个特别的对象,它是一个类数组对象,存在于所有JavaScript函数中。它主要用来存储传递给函数的参数,这些参数被称为函数的“实参”。虽然arguments对象包含了传递给函数的所有...

    JavaScript的arguments对象应用示例

    JavaScript中的arguments对象是函数内预定义的一个类数组对象,它包含了传递给函数的所有参数值。尽管在现代JavaScript开发中,ES6引入了更灵活的参数处理方式,如rest参数和默认参数,但在学习和理解JavaScript时,...

    深入解析JavaScript中的arguments对象

    在JavaScript编程语言中,`arguments`对象是一个非常特殊且实用的特性,它允许开发者在函数内部访问所有传入的实际参数,而不仅仅限于函数声明时定义的参数。这个对象虽然不是真正的数组,但它具备了一些数组的特性...

    JS:arguments

    ### JavaScript中的`arguments`对象详解 在JavaScript编程中,`arguments`对象是一个非常有用的特性,尤其是在处理函数调用时不确定参数数量的情况下。虽然它不是ECMAScript标准的一部分,但所有主流浏览器都支持这...

    Javascript中arguments对象详解

    在JavaScript编程中,arguments对象是一个非常有用的概念,尤其是在处理函数参数方面。在许多编程语言中,如PHP,函数参数可以设置默认值,这样当调用函数时,如果缺少参数,就会自动使用预设的默认值。但在...

    js中arguments对象的深入理解

    在JavaScript中,arguments属于当前对象的一个内置属性,arguments非常类似于Array对象,但是又不是实例的Array。本文主要给大家介绍了关于js中arguments对象的相关内容,下面话不多说了,来一起看看详细的介绍吧 一...

    JavaScript中如何通过arguments对象实现对象的重载

    `arguments`对象是一个类数组对象,它包含了函数调用时传入的所有实际参数。无论函数定义了多少个形式参数(形参),`arguments`对象总是包含所有传递给该函数的实际参数。例如,以下是一个简单的函数: ```...

    前端开源库-arguments-extended

    "arguments-extended"就是一个这样的开源库,专为处理JavaScript中的`arguments`对象提供了一系列实用方法,旨在增强参数操作的灵活性和便利性。 `arguments`对象在JavaScript中是一个特殊的对象,它在函数内部可用...

    JS函数动态传递参数的方法分析【基于arguments对象】

    js函数体内可以通过arguments对象来接收传递进来的参数,利用这一对象属性可以动态传参。 function box() { return arguments[0]+' | '+arguments[1]; //得到每次参数的值 } alert&#40;box(1,2,3,4,5,6&#41;); //...

    Javascript中arguments对象的详解与使用方法

    ECMAScript中的函数并不介意传递的参数有多少,也不介意是什么类型。由于JavaScript允许函数有不定数目的参数,所以我们需要...这就是arguments对象的由来。这篇文章将详细介绍Javascript中的arguments对象和使用方法。

    跟我学习javascript的arguments对象

    JavaScript中的`arguments`对象是一个非常实用的特性,它允许开发者在函数中动态处理传入的参数,无论参数的数量是否已知。以下是对`arguments`对象的详细解释: 1. **`arguments`对象的定义** `arguments`是...

Global site tag (gtag.js) - Google Analytics