2017-01-13 3 views
-1

다음 코드 스 니펫 (ol.control.Control.call)은 무엇을 의미합니까? 나는 openlayer 3을 사용하여 레이어에 몇 개의 버튼을 만듭니다.ol.control.Control.call이란 무엇입니까?

 var options = opt_options || {}; 
     var element = document.createElement('div'); 
     element.className = 'ol-unselectable ol-mycontrol'; 
     element.appendChild(drawPolygon);    

     ol.control.Control.call(this, { 
      element: element, 
      target: options.target 
     }); 
+0

"변수'ol'에서 'control' 속성에 액세스 한 다음 이전 단계에서 반환 된 결과에 대해'Control' 속성에 액세스 한 다음 이전 단계에서 반환 된 결과에 대해 'call' 속성에 액세스합니다. 그 값은'this'의 값과 객체를 인자로 전달하는 함수입니다. " –

답변

1

코드 스 니펫이 불완전합니다.

var MyCustomControl = function(opt_options) { 
    var options = opt_options || {}; 
    var element = document.createElement('div'); 
    element.className = 'ol-unselectable ol-mycontrol'; 
    element.appendChild(drawPolygon);    

    ol.control.Control.call(this, { 
     element: element, 
     target: options.target 
    }); 
}; 
ol.inherits(MyCustomControl, ol.control.Control); 

MyCustomControlol.control.Control입니다 팔자의 기본 컨트롤 프로토 타입을 상속해야합니다 사용자 정의 컨트롤의 생성자입니다 :처럼 보일 것입니다. 사용자 지정 컨트롤이 ol 기본 컨트롤 프로토 타입을 상속하는지 확인하려면 사용자 지정 컨트롤에 적용된 사용자 지정 컨트롤의 생성자에서 ol.control.Control의 생성자를 호출해야합니다. javascript에서는 call 메서드를 사용하여 this (구성중인 사용자 지정 컨트롤을 나타냄)을 첫 번째 인수로 전달하고 ol.control.Control 생성자와 관련된 다른 인수를 전달합니다.

그 후, ol.inherits을 호출하여 사용자 지정 컨트롤이 메서드를 상속 받도록하십시오.

+0

정말 고마워요. – connie