在 javascript 中,我们有 arguments 对象,它不是我们可以查询的数组。
如何获取每个参数的名称?
例如,如果我想知道第三个参数被称为嵌入,我将如何发现这一点?
arguments[2].name == "embedded'
显然上面的方法是行不通的。
在 javascript 中,我们有 arguments 对象,它不是我们可以查询的数组。
如何获取每个参数的名称?
例如,如果我想知道第三个参数被称为嵌入,我将如何发现这一点?
arguments[2].name == "embedded'
显然上面的方法是行不通的。
恐怕这是不可能的。只有值本身被传递:
function logArguments(){
for(key in arguments)
console.log(key, arguments[key]);
}
var someObject = {someProperty:false};
logArguments("1", 3, "Look at me I'm a string!", someObject);
// Returns:
// 0 1
// 1 3
// 2 "Look at me I'm a string!"
// 3 Object {someProperty: false}
所以你只能得到他们的数组索引。
但是,您可以使用它for(key in arguments){}
为函数提供任意数量的参数。
该arguments
对象是参数列表,它不存储参数的名称。
一些浏览器允许您使用该toString
方法来获取函数的代码:
function a(arg1){}
// undefined
a.toString()
// "function a(arg1){}"
如果您需要命名参数,通常传递一个对象:
$.ajax({
url: "test.html",
cache: false
})
我不确定您要实现什么...如果您使用位置参数并且第三个参数称为“嵌入”,那么名称arguments[2]
将始终为“嵌入”。但是,尽管您知道在编写代码时,参数的名称并没有存储在您可以方便地访问它们的任何地方。
像这样的东西
function a() {
var arr = Array.prototype.slice.call(arguments, 0, arguments.length);
for (var aux in arr) {
alert(aux + ":" + arguments[aux]);
}
}