Sie können das Verhalten einer Leaflet.js-Klasse durch including a mixin ändern.Verhalten einer Leaflet-Klasse über include() ändern
Das Tutorial Extending Leaflet: Class Theory sagt:
Wenn eine Klasse bereits definiert ist, bestehende Objekte/Methoden neu definiert werden können, oder neue können mit .include() hinzugefügt werden:
jedoch Beim Versuch, dies zu tun, erhalte ich einen Maximum call stack size exceeded
Fehler.
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]/dist/leaflet.js"></script>
Wenn es relevant ist, überschreibt der eigentliche Code L.Marker.onAdd()
.