调用时的Javascript函数参数名称?

发布于 2024-08-14 08:31:08 字数 521 浏览 2 评论 0原文

我知道这是一个真正的机会,但我想我会问:有没有办法找到在函数调用中作为参数传递的变量的名称?

假设我有:

function test(tmp1, tmp2) {
  // ...
}

var a;
var b;

test(a, b);

我想得到一个像这样的数组:[a, b]。字符串也是可以接受的:["a", "b"]

我确实想要["tmp1", "tmp2"],我知道我可以通过解析函数的字符串表示形式来获得它。

我这么问是因为我正在尝试使用真正的提取器改进我的 caseclass.js 库(请参阅链接了解更多信息)。我知道只有对象是通过引用传递的,因此我试图找到一种解决方法,将提取的值传递回占位符变量。

谢谢!

I know this is a really long shot, but I figure I'd ask: Is there a way to to find the names of the variables passed as parameters in a function call?

Assuming I have:

function test(tmp1, tmp2) {
  // ...
}

var a;
var b;

test(a, b);

I'd like to get an array like so: [a, b]. Strings would also be acceptable: ["a", "b"].

I do not want ["tmp1", "tmp2"], which I know I can get by parsing the string representation of the function.

I'm asking because I'm trying to to improve my caseclass.js library with real extractors (see the link for more information). I understand that only objects are passed by reference, so I'm trying to find a work around to pass the values extracted back to the placeholder variables.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

相思故 2024-08-21 08:31:08

也许您可以查看由异常或错误引起的堆栈跟踪,但我不确定它是否有效,并且它在不同的浏览器中可能会有不同的工作方式。

maybe you could look into the stacktrace caused by an exception or error, but I'm not certain it would work, and it would probably work differently in different browsers.

浅语花开 2024-08-21 08:31:08

也许您想看看 eval() 函数...但我从来没有用javascript做过像你描述的那样的事情。我什至不确定这是否可能。

Maybe you'd like to take a look at the eval() function... but I've never done something like you describe with javascript. I'm not even sure it's possible.

缪败 2024-08-21 08:31:08

做这样的事情怎么样:

var a = { name: 'a', value: 'foo' };
var b = { name: 'b', value: 'bar' };

test(a, b);

function test(tmp1, tmp2)
{
   var paramArray = [ tmp1.name, tmp1.name ];
}

How about doing something like this:

var a = { name: 'a', value: 'foo' };
var b = { name: 'b', value: 'bar' };

test(a, b);

function test(tmp1, tmp2)
{
   var paramArray = [ tmp1.name, tmp1.name ];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文