Javascript 为什么';参数';函数对象上的属性为空?
代码: 输出: (扩大)Javascript 为什么';参数';函数对象上的属性为空?,javascript,arguments,Javascript,Arguments,代码: 输出: (扩大) foo(a,b,c) 参数:null 呼叫方:空 长度:3 姓名:“富” 原型:对象{…} :函数() 问题: 从函数的属性来看,大多数属性都是有意义的: 调用方为null,因为我调用了foo();关于全局对象 由于函数的定义,名称为“foo” length是参数的数目 但为什么参数返回null?我们如何填充该列表 编辑:我不是说foo()返回的内容的属性。我说的是函数对象foo本身的属性 澄清: 该属性仅在函数(或该函数的某些调用)运行时在函数内部可用,但已弃用
foo(a,b,c)
参数:null
呼叫方:空
长度:3
姓名:“富”
原型:对象{…}
:函数()
问题:
从函数的属性来看,大多数属性都是有意义的:
- 调用方为null,因为我调用了foo();关于全局对象
- 由于函数的定义,名称为“foo”
- length是参数的数目
foo()
返回的内容的属性。我说的是函数对象foo
本身的属性
澄清:
该属性仅在函数(或该函数的某些调用)运行时在函数内部可用,但已弃用,因此您不应使用它:
函数foo(a,b,c){
console.log('hi');
log(foo.arguments);
}
foo(1,2,3)代码>“调用者为空,因为我在全局对象上调用了foo()”—呃,不,在您发布的代码中,foo()
根本没有调用,它只是被记录了下来?“只在函数内部可用”—嗯,不,它的全部问题是它也在函数范围之外可用
function foo(a, b, c) {
console.log('hi');
}
console.log(foo);
foo(a, b, c)
arguments: null
caller: null
length: 3
name: "foo"
prototype: Object {...}
<prototype>: function()