简单地说,
在 JavaScript 中,变量 arguments
(通过它可以获取当前函数的所有参数)不是 Array
类型,但控制台说它的类型是 Arguments
.
您无法通过简单地输入 Arguments
来获得此类(就像你对 String
所做的那样),所以我得到了它的引用,例如:
Arguments = function(){return arguments.constructor;}();
所以我可以像这样输入检查:
function foo() {
bar = arguments;
}
foo();
bar instanceof Arguments;
有没有办法直接引用Arguments
对象?(而不是像前面的代码片段那样生成它?)
Ps.:我正在从事的项目是一个用于调试目的的类型检查系统。您可以为对象变量分配类型,例如 MyClass.fileds = {speed: Number, color: String}
,然后在分配时进行检查。我使用Arguments
来解决这个问题。对象,如果只写 {args: Arguments}
就很好了.
最佳答案
没有Arguments
类。您拥有的 Arguments
变量只是 Object
构造函数:
function(){return arguments.constructor;}() === Object
每个arguments
对象都是一个继承自Object.prototype
的普通对象。在草率模式下,其索引属性是命名参数变量的 setter/getter,但除外 its internal [[Class]]
value它是一个普通的对象。
如果您对 Arguments
感兴趣,只是为了进行 instanceof
检查,那么您应该看看 How do I check whether an object is an arguments object in JavaScript?问题。
关于javascript - 如何在 JavaScript 中引用 Arguments 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24642070/