首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Function.caller.arguments和Function.arguments有什么区别?

Function.caller.arguments和Function.arguments有什么区别?
EN

Stack Overflow用户
提问于 2017-02-24 12:05:24
回答 2查看 46关注 0票数 0

无论我在函数foo.caller.arguments中使用arguments还是使用简单的argumentsfoo都有区别吗?

代码语言:javascript
复制
function foo(){
    console.log(foo.caller.arguments);
}

function foo(){
    console.log(arguments);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-24 12:18:18

正如对这个问题的评论中所说的,caller不是一个标准属性:Objects/Function/caller

尽管如此,它还是返回对调用方的引用,即调用当前函数的函数。因此,caller.arguments将获得调用者调用的参数。

arguments为您获取调用当前函数时使用的参数。

例如:

代码语言:javascript
复制
function one(c) {
    console.log('arguments', arguments);
    console.log('caller.arguments', one.caller.arguments);
}

function two(a, b) {
    one(3);
}

two(1, 2)

打印

代码语言:javascript
复制
arguments [3]
caller.arguments [1, 2]
票数 2
EN

Stack Overflow用户

发布于 2017-02-24 12:15:38

arguments将参数提供给函数本身,而caller.arguments则给出调用此函数的函数的参数。下面的代码将给您基本的理解。

function.caller是建议的BTW中的Non-standard

代码语言:javascript
复制
var foo = function(name) {
  bar('second');
}

var bar = function(surname) {
  console.log(arguments);
  console.log(bar.caller.arguments)
}

foo('first');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42438216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档