2017-12-29 16 views
0

JSFiddyhere, 이것은 JavaScript 및/또는 CodeMirror 질문입니다.선언 중에 속성으로 정의 된 함수의 속성을 설정하는 방법

아래 코드에서 hint 함수는 hintOptions 개체의 속성으로 정의됩니다.

코드 블록 외부에 정의하지 않고 해당 기능의 속성을 설정할 수 있습니까?

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

을하지만 자바 스크립트가 전혀 작동하지 않기 때문에 구문 오류 것 같다 :

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

나는 같이 익명 함수로했습니다. CodeMirror docs로서 언급

:

힌트 : 함수

힌트 기능, 상기 지정된. (cm, 콜백 옵션?)이 인수로 호출 될 경우 사실에 힌트 기능에 async 속성을 설정할 수 있습니다 async이 올바르게 설정되어있는 경우

확인하려면 :

  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);

    : async 속성이 작동하는 것 같다으로

  5. log 텍스트 영역은 함수를 만드는 개체 initialiser하지 undefined
+0

당신의 목적이 무엇인지 또는 어떤 상위 레벨의 문제를 해결하려고하는지 분명하지 않음 – charlietfl

+0

이 시나리오에서 JavaScript로 해당 속성을 구성 할 수 있는지 (코드가 압축되어 있는지) 알 수 없거나 함수에서 선언에서 벗어나 속성을 속성으로 제거합니다. 즉, 'async' 속성을 정의하는 가장 좋은 방법입니다. –

+0

은 '힌트 : 비동기 함수 ...'여야합니다. – charlietfl

답변

1

인생을 가져야한다 "[object Object]"는 게시물의 지시 사항을 따르는 바이올린에 있지만 예상 결과인지 모릅니다.

+0

사실,'undefined '가 아닌 다른 것이 있으면, 그것은 필요한 것입니다, 감사합니다. –