莫回無
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');

森欄
TA貢獻1810條經驗 獲得超5個贊
您首先必須將log 作為字符串傳遞,否則它將引發錯誤,指出 log 未定義。
你可以試試這個:
const funcOne = (param1, param2) => console[param1](param2); funcOne('log', `hello there`);
如果要在 javascript 中動態訪問對象的屬性,則必須使用方括號表示法。
希望這可以幫助!
添加回答
舉報
0/150
提交
取消