A
andreax
Guest
Hallo
Wie kann ich die unten beschriebene Klassen-Variable zahl in der Listener-Function erreichen den this zeigt in diesem Fall nur auf das geclickte Objeckt.
Wenn ich innerhalb der Funktion clicka eine Instanz der Klasse erstelle und dann auf zahl verweise funktioniert der Aufruf.
aber ich kann die instanz nicht mehr entfernen und so befürchte ich daß der Arbeitsspeicher zugemüllt wird.
Danke für alle Infos Andreas
Wie kann ich die unten beschriebene Klassen-Variable zahl in der Listener-Function erreichen den this zeigt in diesem Fall nur auf das geclickte Objeckt.
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>ES6 TEST</title>
<style type="text/css">
#test-b{
width:100px;
height:100px;
border-radius:50%;
background-color:#599;
cursor:pointer;
margin:auto;
}
</style>
</head>
<body>
<div id="test-b" data-point="1"> </div>
<script>
class ListenerTest
{
constructor()
{
this.ob = document.getElementById('test-b');
this.zahl = [1,2,3,4,5,6];
this.clicka = function(){console.log(this.dataset.point); console.log(this.zahl[4]);}
//test1.html:32 Uncaught TypeError: Cannot read property '4' of undefined
// zahl wird nicht gefunden weil this auf ob zeigt
}
get setListener(){
this.ob.addEventListener('click',this.clicka,false);
console.log('setListenr',this.zahl[4]);//hier wird zahl gefunden weil this auf die Klasse zeigt.
}
}
var lisInst = new ListenerTest();
lisInst.setListener;
</script>
</body>
</html>
aber ich kann die instanz nicht mehr entfernen und so befürchte ich daß der Arbeitsspeicher zugemüllt wird.
Danke für alle Infos Andreas
Zuletzt bearbeitet von einem Moderator: