Javascript TypeError:无法读取属性';数据';未定义的,但已定义

Javascript TypeError:无法读取属性';数据';未定义的,但已定义,javascript,binary-search-tree,typeerror,graph-algorithm,Javascript,Binary Search Tree,Typeerror,Graph Algorithm,我正在研究一个二叉搜索树算法,由于某种原因,我不断得到一个类型错误。它总是在将第二个值插入到树中时发生。特别是当当前节点的值与传入数据值进行比较时 代码如下: 类节点{ 构造函数(数据,左=null,右=null){ 这个数据=数据; this.leftNode=left; this.rightNode=right; } } BST级{ 构造函数(){ this.root=null; } 插入(数据){ const dataNode=新节点(数据); if(this.root==null){

我正在研究一个二叉搜索树算法,由于某种原因,我不断得到一个类型错误。它总是在将第二个值插入到树中时发生。特别是当当前节点的值与传入数据值进行比较时

代码如下:

类节点{
构造函数(数据,左=null,右=null){
这个数据=数据;
this.leftNode=left;
this.rightNode=right;
}
}
BST级{
构造函数(){
this.root=null;
}
插入(数据){
const dataNode=新节点(数据);
if(this.root==null){
this.root=dataNode;
}否则{
让currentNode=this.root;
让parentNode;
while(true){
parentNode=currentNode;
if(数据bst.insert(7)
您正在执行的是
parentNode.left
,它是
未定义的
,而您应该执行的是
parentNode.leftNode
您有一个打字错误。修复了下面的代码片段:

类节点{
构造函数(数据,左=null,右=null){
这个数据=数据;
this.left=左;
这个。右=右;
}
}
BST级{
构造函数(){
this.root=null;
}
插入(数据){
const dataNode=新节点(数据);
if(this.root==null){
this.root=dataNode;
}否则{
让currentNode=this.root;
让parentNode;
while(true){
parentNode=currentNode;
if(数据bst.insert(7)似乎在将任何值分配给parentNode.left之前,已将parent.left分配给currentNode
这也发生在正确的人身上