Javascript 从从字符串创建的函数中获取参数列表

Javascript 从从字符串创建的函数中获取参数列表,javascript,Javascript,这可能是一个奇怪的问题,但我很好奇它是否能起作用。我有以下JavaScript函数: function createPerson(args){ alert(args.firstName); if (args.surname){ alert(args.surname); } } 然后是以下情况(例如,函数存储为字符串的场景): 这会像预期的那样提醒“John”。然后我想尝试做的是在执行参数之前为参数添加一个姓氏,就像这样(但不是垃圾!) 我还没有找到一种方法来获取函数参数中

这可能是一个奇怪的问题,但我很好奇它是否能起作用。我有以下JavaScript函数:

function createPerson(args){
  alert(args.firstName);

  if (args.surname){
    alert(args.surname);
  }
}
然后是以下情况(例如,函数存储为字符串的场景):

这会像预期的那样提醒“John”。然后我想尝试做的是在执行参数之前为参数添加一个姓氏,就像这样(但不是垃圾!)


我还没有找到一种方法来获取函数参数中的对象,以便对其进行修改。有人知道这样的事情是否可能吗?谢谢

我认为这是不可能的

仔细查看
convertFunction
变量:

var functionAsString = 'createPerson({ firstName: \'John\' });';
var convertFunction = new Function(functionAsString);
console.log(convertFunction)
// function anonymous() {
// createPerson({ firstName: 'John' });
// }

正如您所看到的,
convertFunction
不是您的直接函数-它是一个匿名包装器,不接受任何参数,并使用预定义的参数调用您的函数。

当您发现自己想要做一些看起来“奇怪”或不自然的事情时,有一个很好的可能性,你在某个地方做出了一个有问题的设计决定。这是一个奇怪的想法,我不知道有什么办法可以做到。为什么需要这样做?我只是在做实验,但有一个例子是,如果函数作为字符串存储在数据库字段中。我知道这可能是亵渎神明:德戈查。这是有道理的,也解释了为什么我检索参数的每次尝试都失败了!谢谢你的回复。
convertFunction.arguments.surname = 'Smith';
convertFunction();
var functionAsString = 'createPerson({ firstName: \'John\' });';
var convertFunction = new Function(functionAsString);
console.log(convertFunction)
// function anonymous() {
// createPerson({ firstName: 'John' });
// }