I eine Klasse in JavaScript wie folgt erstellt:innere Funktionsvariable verlorenem 'this' Wert der äußeren Funktion
class TreeMatching
{
constructor()
{
this.thresholdPoints=0;
this.neighborWeight = 0.4;
this.totalFrequency = 0.0;
this.listSeq = [];
this.listFreq = [];
this.mapScore = new Object();
this.tree = new Trie();
}
createTree()
{
var list_Dictionary;
var loadWordList = $.get("../wordFrequencyTop5000.txt", function(data)
{
list_Dictionary = data.split("\n");
});
loadWordList.done(function()
{
for(var i=0;i<list_Dictionary.length;i++)
{
var string = list_Dictionary[i];
this.tree.insert(string); //<-- Cannot read property 'insert' of undefined
}
});
}
}
die angeblich die insert
Methode in der Klasse Trie nennen wie folgt:
class Trie
{
constructor()
{
this.count=1;
this.root = new TrieNode();
}
insert(word)
{
var children = new Object();
for(var i=0; i<word.length(); i++){
var c = word.charAt(i);
var t;
if(children[c]){
t = children[c];
}else{
t = new TrieNode(c);
children.put(c, t);
}
children = t.children;
//set leaf node
if(i==word.length()-1)
t.isLeaf = true;
}
}
}
Die Codezeile, in der der Fehler markiert ist, die äußere Funktion hat jedoch nicht die folgenden Eigenschaften: tree
, mapScore
, usw.
Gibt es eine Möglichkeit, auf diese Werte von der inneren Callback-Funktion zuzugreifen?
Dank
Danke! Es klappt. – Techs