在我阅读javascript书时,我阅读了以下句子。
“使用名为arguments的属性初始化调用对象,该属性引用函数的Arguments对象”
我允许使用console.log或alert()方法在javascript中输出调用对象的结构(或值?)??
当人们说'呼叫对象'时,它是概念还是对象?
答案 0 :(得分:3)
“调用对象”在ECMAScript规范中称为“激活对象”,无法直接访问。这允许ECMAScript / JavaScript引擎以最佳方式实现它,因为它们只需要确保它始终正确行为,即使字面上没有带有参数属性的对象,变量属性等等。
以下是规范中的描述(添加了emphesis):
10.1.6 Activation Object
当控件进入执行上下文时 功能代码,一个叫做的对象 激活对象已创建并且 与执行上下文相关联。 激活对象已初始化 带有名称参数的属性 和属性{DontDelete}。该 这个属性的初始值是 参数对象如下所述。
然后将激活对象用作 用于此目的的变量对象 变量实例化。
激活对象纯粹是一个 规范机制。它是 ECMAScript程序不可能 访问激活对象。 它 可以访问激活的成员 对象,但不是激活对象 本身。当通话操作是 应用于其参考值 基础对象是一个激活对象, null用作此值 调用
答案 1 :(得分:1)
我相信他们指的是调用方法/函数的对象。
这可以通过this
关键字
<a onclick="foo()">click me</a>
function foo(){
this.style.color='#cc0000';
alert(arguments.length);
}
此代码会将锚点的文本颜色更改为“#cc0000”并警告0。