javascript - 可以在 JavaScript 中访问参数 "class"吗?

标签 javascript

所有其他内置函数都附加到全局对象:

> 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/

相关文章:

javascript - 如何从阵列中挑选随机声音? (JS)

javascript - 调用、绑定(bind)、应用与将引用对象作为参数传递

javascript - 如何通过同一个流发送不同编码的数据?

javascript - 显示来自数据文本属性的数据

javascript - 基本的js验证

javascript - 无法在 Mouseup 事件上传递回调函数 - JavaScript

javascript - 更改 AngularJS ngTrim 行为

javascript - Laravel 在向服务器发送 JSON 格式的 ISO 格式日期时提示 'trailing data'?

javascript - 使用 Javascript 更改 TH 中的文本

javascript - 可以在 IE 中打开文件输入对话框并上传 onchange 吗?