const code = `console.log(a + b)`

こういう文字列に入った JavaScript コードを実行したくて そのコード内で使われる変数は

const obj = { a: 1, b: 2}

みたいなオブジェクトで設定したいとき

シンプルでライブラリなどで見かけるものは with + eval

with(obj) { eval(code) }
// 3

with は推奨されないけど deprecated というわけではないのでこういうときには使うのは問題ないみたい
MDN によればパフォーマンス的にも遅くなるどころか優れてるらしい

with を使いたくない場合は こういうこともできる

Function(
...Object.keys(obj),
code
)(...Object.values(obj))
// 3

下のコードを実行するのと同じ

(function(a, b) {
console.log(a + b)
})(1, 2)
// 3