为了账号安全,请及时绑定邮箱和手机立即绑定

需要建议 - 使用 javascript 动态设置参数/属性

需要建议 - 使用 javascript 动态设置参数/属性

莫回无 2022-11-03 10:02:18
有没有办法在javascript中为函数动态设置参数或属性?一些例子:const funcOne = (param1, param2) => console.param1(param2);funcOne(log, `hello there`);显然上面的行不通,举个例子,下同:const mongoFunc = param, filter => Collection.param(filter, (err, foundArticle) => {// code block});这将起作用:const funcOne = (param1, param2) => console.log(param1, param2);funcOne(`hello`, `there`);所以我想知道是否有一种动态方式来设置console.log 中的日志,就像mongo 动态设置Collection.find 或collection.findOneAndUpdate 一样。先感谢您。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

是的,你绝对可以做到。首先,在一个对象中,您可以使用[]如下方式访问/创建一个动态键:


object[dynamicKey] = 'someVal';

其中 dynamicKey 字符串是您要在对象中访问的键。例子


const sampleObject = {

   name: 'stack',

   flow: true,

};


const setDynamicKey = (o, k, v) => (o[k] = v);


setDynamicKey(sampleObject, 'hello', 'world!');

console.log(sampleObject); // { name: 'stack', flow: true, hello: 'world!' }

现在对于您的情况,您可以执行以下操作


const funcOne = (param1, param2) => console[param1](param2);


funcOne('log', 'hello there');


查看完整回答
反对 回复 2022-11-03
?
森栏

TA贡献1810条经验 获得超5个赞

您首先必须将log 作为字符串传递,否则它将引发错误,指出 log 未定义。

你可以试试这个:

const funcOne = (param1, param2) => console[param1](param2);
funcOne('log', `hello there`);

如果要在 javascript 中动态访问对象的属性,则必须使用方括号表示法。

希望这可以帮助!


查看完整回答
反对 回复 2022-11-03
  • 2 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信