Вы можете изменить поведение класса Leaflet.js на including a mixin.Изменение поведения класса Leaflet с помощью include()
Учебник Extending Leaflet: Class Theory говорит:
Если класс уже определен, существующие свойства/методы могут быть переопределены, или новые могут быть добавлены с помощью .include():
Однако при попытке сделать это, я получаю ошибку Maximum call stack size exceeded
.
var DemoClass = L.Class.extend({
value: 42,
demoMethod: function() {
return this.value;
}
});
DemoClass.include({
demoMethod: function() {
return DemoClass.prototype.demoMethod.call(this) * 2;
},
secondMethod: function() {
return this.value;
}
});
var instance = new DemoClass();
console.log("value=" + instance.value);
console.log("secondMethod()=" + instance.secondMethod());
console.log("demoMethod()=" + instance.demoMethod()); // gives a call stack exceeded
<script src="https://unpkg.com/[email protected]1/dist/leaflet.js"></script>
Если это уместно, фактический код перекрывая L.Marker.onAdd()
.