Tana Gone
Tana Gone
~1 min read

Categories

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"

Lunr: A bit like Solr, but much smaller and not as bright