有没有办法在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');
森栏
TA贡献1810条经验 获得超5个赞
您首先必须将log 作为字符串传递,否则它将引发错误,指出 log 未定义。
你可以试试这个:
const funcOne = (param1, param2) => console[param1](param2); funcOne('log', `hello there`);
如果要在 javascript 中动态访问对象的属性,则必须使用方括号表示法。
希望这可以帮助!
添加回答
举报
0/150
提交
取消