gpt4 book ai didi

javascript - .addOn 在此传单示例代码中如何工作/执行?

转载 作者:行者123 更新时间:2023-12-03 03:20:49 26 4
gpt4 key购买 nike

我对 javascript 仍然缺乏经验,并试图理解这段代码 -

当 info.onAdd 不专门调用且不带参数时,它何时/如何执行?

根据传单文档,这是一个 native 方法,但为该名称分配了一个函数?

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

最佳答案

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

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

您的代码不会调用 onAdd 方法,因为它是由 Leaflet 调用的:

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

关于javascript - .addOn 在此传单示例代码中如何工作/执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46576991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com