2017-01-13 11 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のコンストラクタを呼び出して、カスタムコントロールに適用する必要があります。 javadocでは、callメソッドを使用して、this(構築しているカスタムコントロールを表す)を最初の引数として渡し、ol.control.Controlコンストラクタに固有のいくつかの引数を渡します。

その後、ol.inheritsを呼び出して、カスタムコントロールにメソッドを継承させるようにします。

+0

ありがとうございました。 – connie

関連する問題