2017-12-29 7 views
0

JSFiddyhere、これはJavaScriptおよび/またはCodeMirrorの質問です。宣言中にプロパティとして定義された関数のプロパティを設定する方法

hintファンクションは、hintOptionsオブジェクトのプロパティとして定義されています。

コードブロックの外で定義することなく、その関数のプロパティを設定する可能性はありますか?

var editor = CodeMirror.fromTextArea(myTextarea, { 
    hintOptions: { 
     hint: function(cm, callback, options) { 
      return { 
      } 
     } 
    } 
}); 

私はのように、無名関数を試してみました:

var editor = CodeMirror.fromTextArea(myTextarea, { 
    hintOptions: { 
     hint: (function(cm, callback, options) { 
      return { 
      } 
     })({ 
      async: true 
     }) 
    } 
}); 

が、JavaScriptがまったく機能していないので、構文エラーのようです。

ヒント:機能

ヒンティング機能、上記指定されCodeMirror docs言及として

asyncが正しく設定されているかどうかを確認するには

trueにヒンティング機能にasyncプロパティを設定することが可能であり、それは引数で呼び出されます。その場合には(コールバック、CM、オプション?):

  1. 開く 'クラスコード'
  2. タイプはCtrl +スペース
  3. 0に JSFiddle
  4. クリック

    let testObj = { 
     
        hintOptions: { 
     
         hint: (function() { 
     
          let hint = function(cm, callback, options) { 
     
           log(options); 
     
           return { 
     
            from: cm.getDoc().getCursor(), 
     
            to: cm.getaDoc().getCursor(), 
     
            list: ['foo', 'bar'] 
     
           } 
     
          } 
     
          hint.async = true; 
     
          return hint 
     
         })() 
     
        } 
     
    }; 
     
    
     
    console.log("hint.async: " + testObj.hintOptions.hint.async);

    私は得ることができた:

  5. log TEXTAREAはasyncプロパティと関数を作成するには、オブジェクト初期化子ではないundefined
+0

あなたの目的が何であるか、またはあなたが解決しようとしているより高いレベルの問題を明確にしていない – charlietfl

+0

このシナリオでJavaScriptを使用してそのプロパティを設定できるかどうかわかりません(コードがコンパクトなので)その関数を宣言からプロパティとして削除します。つまり、 'async'プロパティをどのように定義するのが最適です。 –

+0

は 'ヒント:非同期関数... 'でなければなりません – charlietfl

答えて

1

生命維持が動作しているようですが必要ですポストの指示に従うと、 "[オブジェクトオブジェクト]"が予想されますが、その結果はわかりません。

+0

実際、 'undefined'以外のものが得られると、それは必要なものです。ありがとうございます。 –

関連する問題