lunr.jsの動作を理解するためにJSのClousureについて調べてみた
次の様なidxオブジェクトを実装して下さい。idxオブジェクトのqueryメソッドを実行すると変数fooに文字列”OK”がセットされます。queryメソッドはClousureを受け取り、queryメソッドはClousureにqオブジェクトをセットします。qオブジェクトのtermメソッドを呼び出すと文字列”OK”が返ります。
var foo = idx.query(function(q) { return q.term() });
ChatGPTの回答
const idx = {
query(callback) {
// qオブジェクトを定義
const q = {
term() {
return "OK"; // termメソッドは"OK"を返す
}
};
// コールバック関数にqオブジェクトを渡して実行
return callback(q);
}
};
// 動作確認
var foo = idx.query(function(q) { return q.term(); });
console.log(foo); // "OK"