ECMAScript arguments 对象

来源:互联网 发布:大发信誉第一js 编辑:程序博客网 时间:2024/05/22 05:02

arguments 是一个类数组对象。代表传给一个function的参数列表。

是函数内部的本地变量;arguments 已经不再是函数的属性了。

你可以在函数内部通过使用 arguments 对象来获取函数的所有参数。这个对象为传递给函数的每个参数建立一个条目,条目的索引号从 0 开始。

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

arguments 对象仅在函数内部有效,在函数外部调用 arguments 对象会出现一个错误。


function returnArguments(){  return arguments;}returnArguments(1,2,3,4)##[1,2,3,4]

典型使用arguments对象的部分 ,classnames库,  https://github.com/JedWatson/classnames


/*!  Copyright (c) 2016 Jed Watson.  Licensed under the MIT License (MIT), see  http://jedwatson.github.io/classnames*//* global define */(function () {'use strict';var hasOwn = {}.hasOwnProperty;function classNames () {var classes = [];for (var i = 0; i < arguments.length; i++) {var arg = arguments[i];if (!arg) continue;var argType = typeof arg;if (argType === 'string' || argType === 'number') {classes.push(arg);} else if (Array.isArray(arg)) {classes.push(classNames.apply(null, arg));} else if (argType === 'object') {for (var key in arg) {if (hasOwn.call(arg, key) && arg[key]) {classes.push(key);}}}}return classes.join(' ');}if (typeof module !== 'undefined' && module.exports) {module.exports = classNames;} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {// register as 'classnames', consistent with npm package namedefine('classnames', [], function () {return classNames;});} else {window.classNames = classNames;}}());


参考资料:

1.https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments

2.https://github.com/JedWatson/classnames

0 0
原创粉丝点击