浅析JavaScript中Function对象(一)之 arguments对象

您所在的位置:网站首页 js中arguments对象 浅析JavaScript中Function对象(一)之 arguments对象

浅析JavaScript中Function对象(一)之 arguments对象

2024-07-08 14:26:10| 来源: 网络整理| 查看: 265

  一、Function对象及其原型对象

  Function对象是js中一个非常重要的对象,所有通过function关键字声明的函数,本质上都是由Function这个特殊的构造器对象创建出来的,也就是new出来的。

  首先要明确的一点就是,在JS中万物皆对象,所以函数本身也是对象,只不过函数对象比较特殊,比其他对象多一个prototype属性。所以Function既是对象,也是函数(构造器),其实更准确的说就是函数对象。

  其次,更特殊的一点是,由于js中所有的对象都是由构造器new出来的,那么Function既然也是个对象,那么它又是由谁构造出来的呢?这个答案我们可以考察它的prototype和__proto__属性就能得出答案。

console.log(Function.prototype == Function.__proto__);//true

  也就是说,Function函数的prototype和__proto__指向的是同一个对象,换句话说就是Function自己构造了自己。到了这里,其实就成了“蛋”和“鸡”的关系了。到底是先有鸡还是先有蛋?这是个问题,但也不是问题,对于我们开发人员来说,我们压根没必要在这个问题上纠结,因为这个问题丝毫不会影响我们开发项目。我们这需要知道有这么一个扯淡的事情就OK了。

  二、arguments

  其实arguments有2个,惊喜不惊喜,以外不意外?

  1.arguments属性

  其语法是:function.arguments 属性:代表传入函数的实参,它是一个伪数组对象。已废弃。

function test(var1,var2){ console.log(test.arguments[0]+test.arguments[1]); }

  注意: 1)、使用函数名调用;2)、arguments数组访问的是本次函数调用时传入的实参,而非上一次调用时的参数(对于嵌套或循环调用需注意!)。推荐使用函数内部的arguments对象:。

  2.arguments对象

  该对象是函数内部的本地变量,而不是函数的属性。使用示例

function test(var1,var2){ arguments[0]=0;//可改变参数的值 alert(arguments[0]+arguments[1]); } test(1,2);//将提示结果为2

  arguments对象并不是一个真正的Array对象,而是一个伪数组,所以它没有数组的属性与方法(length除外)。

  arguments对象的主要成员有:arguments.callee,arguments.length。

  ①arguments.callee返回该arguments对象所属的函数构造器(即函数),从而可实现匿名函数的递归等 ,例如

function create() { return function(n) { if (n 0){ var firstChar = selector.substr(0,1);// [#|.|tag] var lastString = selector.substr(1); switch(firstChar){ case "#": return document.getElementById(lastString); case ".": return document.getElementsByClassName(lastString); default: document.getElementsByTagName(selector); } } }

  我们首先要判断用户有没有传递参数,如果没有或者参数超过一个就要报错,那么如何判断用户传递的参数的个数呢?这时候arguments.length就派上用场了。

  三、length属性

  此length属性表示声明的函数的形参个数。

  上面说了,在函数内部可以使用arguments对象,arguments对象有一个length属性。

  其实每一个function对象自己本身也有一个length属性,这个length属性是函数对象的一个属性值,指明该函数期望多少个参数,意即形参的个数。

  四、方法成员:call()   、 apply() 、bind()

  这三个是一个比较难理解的部分,我们放在下一个专题来分析。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭