所有其他内置函数都附加到全局对象:
> Object.prototype.toString.call(new Date)
'[object Date]'
> new Date instanceof Date
true
> Object.prototype.toString.call(new Function)
'[object Function]'
> new Function instanceof Function
true
> Object.prototype.toString.call(new Number)
'[object Number]'
> new Number instanceof Number
true
Arguments
但是,不是:
> args = null; (function() { args = arguments }()); Object.prototype.toString.call(args)
'[object Arguments]'
> new Arguments instanceof Arguments
ReferenceError: Arguments is not defined
有什么方法可以访问吗?
最佳答案
如果您的意思是要手动创建 Arguments
的实例,那么这是不可能的。没有Arguments
构造函数。
该类型的对象实际上是由内部算法创建的(参见 ECMAScript 规范的 section 10.6)。您看到的 Object.prototype.toString.call
的输出只是存储在对象的 [[Class]]
内部属性中的值。它可以是任何东西。在这种情况下,规范定义它应该设置为字符串“Arguments”。
关于javascript - 可以在 JavaScript 中访问参数 "class"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15669400/