2017-10-05 25 views
0

我仍然对JavaScript没有经验,并试图理解此代码 -.addOn在本传单示例代码中如何工作/执行?

什么时候/如何执行info.onAdd而不是专门调用w/o参数?

根据传单文档,这是一个本地方法,但函数分配给名称?

var info = L.control(); 

info.onAdd = function (map) { 
    this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info" 
    this.update(); 
    return this._div; 
}; 

// method that we will use to update the control based on feature properties passed 
info.update = function (props) { 
    this._div.innerHTML = '<h4>US Population Density</h4>' + (props ? 
     '<b>' + props.name + '</b><br />' + props.density + ' people/mi<sup>2</sup>' 
     : 'Hover over a state'); 
}; 

info.addTo(map); 

回答

1

在编程中,一个“method”的确是函数,而是附着到一个对象(或类的实例)。

在您提供的代码示例中,此方法被另一个函数覆盖。这也是标准惯例,用于自定义对象行为。

您的代码看起来不调用onAdd方法,因为它是由单张叫:

  1. addTo执行某些操作,主要是调用mapaddControl方法。
  2. addControl注册info控件,并调用infosonAdd方法。
  3. onAdd执行并返回一个HTMLElement,map可以使用HTMLElement在视口上显示info
相关问题