如何在Javascript中修改类成员?

我正在Binary Search Tree用Java语言实现一个简单的方法,但是我无法理解Javascript OOP的工作方式。
在我的insertHelper方法中,我分配了一个新的root用户,BinaryNode但是在函数返回后,它null甚至仍然明确地thisinsert方法中使用了指针那么有人可以帮我解释一下吗?

function BinaryNode(key, value, left, right) {
    this.key = key;
    this.value = value;
    this.left = left;
    this.right = right;
}

function BinarySearchTree() {
    this.root = null;
}

BinarySearchTree.prototype.insertHelper = function (root, key, value) {
    if (root === null) {
        root = new BinaryNode(key, value, null, null);
    }
}

BinarySearchTree.prototype.insert = function (key, value) {
    this.insertHelper(this.root, key, value);
    if (this.root === null) {
        console.log("root is NULL!");
    }
};

var bst = new BinarySearchTree();
console.log(typeof bst);
console.log(typeof bst.root);
bst.insert(1, 1);
Megawac

封闭,this.root存在undefined是您必须显式处理的一种特殊情况。我会让您弄清楚如何立即完成实施insertHelper

操作方式的问题是,您正在重新分配范围变量,而您需要在this对象上重新分配该变量

BinarySearchTree.prototype.insert = function (key, value) {
    if (this.root == null) {
        this.root = new BinaryNode(key, value);
    } else {
        this.insertHelper(this.root, key, value);
    }
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JavaScript中调用类成员函数

来自分类Dev

如何在JavaScript中修改“ this”

来自分类Dev

如何在类的成员函数中返回类实例?

来自分类Dev

如何在类中调用静态成员(这是普通类)

来自分类Dev

如何在 JavaScript 中访问超类的私有成员?

来自分类Dev

如何在Javascript中修改URL

来自分类Dev

如何在类本地方法之一中从Javascript回调访问打字稿类成员

来自分类Dev

如何在继承的类成员函数中访问基类成员的地址?

来自分类Dev

如何在KDoc中链接到Java类的静态成员?

来自分类Dev

如何在Sphinx文档中显示类的继承成员?

来自分类Dev

如何在C ++ 11中返回类成员向量

来自分类Dev

如何在dll导出的类中隐藏成员变量

来自分类Dev

如何在Powershell 5类中声明静态成员?

来自分类Dev

如何在声明为const的方法中更改类成员

来自分类Dev

如何在类静态成员中引用静态变量?

来自分类Dev

如何在visual studio中显示模板的静态类成员?

来自分类Dev

如何在python中定义类外的成员函数?

来自分类Dev

如何在嵌套案例类中查找和修改字段?

来自分类Dev

如何在Python中修改或扩展标准套接字类?

来自分类Dev

如何在Ruby的Array类中修改map函数的实现

来自分类Dev

如何在代码中修改类对象参数

来自分类Dev

如何在其子类中修改类的属性?

来自分类Dev

如何在 SCSS 中为元素添加“修改”类

来自分类Dev

如何使用C#中的公共超类修改对象列表的成员?

来自分类Dev

如何在类中访问全局数据成员和成员函数?

来自分类Dev

如何在类中访问全局数据成员和成员函数?

来自分类Dev

如何在从成员函数调用的闭包中修改self?

来自分类Dev

如何在C ++中限制对象私有数据成员的修改?

来自分类Dev

如何在C ++中的专用模板类中访问模板类成员字段?

Related 相关文章

  1. 1

    如何在JavaScript中调用类成员函数

  2. 2

    如何在JavaScript中修改“ this”

  3. 3

    如何在类的成员函数中返回类实例?

  4. 4

    如何在类中调用静态成员(这是普通类)

  5. 5

    如何在 JavaScript 中访问超类的私有成员?

  6. 6

    如何在Javascript中修改URL

  7. 7

    如何在类本地方法之一中从Javascript回调访问打字稿类成员

  8. 8

    如何在继承的类成员函数中访问基类成员的地址?

  9. 9

    如何在KDoc中链接到Java类的静态成员?

  10. 10

    如何在Sphinx文档中显示类的继承成员?

  11. 11

    如何在C ++ 11中返回类成员向量

  12. 12

    如何在dll导出的类中隐藏成员变量

  13. 13

    如何在Powershell 5类中声明静态成员?

  14. 14

    如何在声明为const的方法中更改类成员

  15. 15

    如何在类静态成员中引用静态变量?

  16. 16

    如何在visual studio中显示模板的静态类成员?

  17. 17

    如何在python中定义类外的成员函数?

  18. 18

    如何在嵌套案例类中查找和修改字段?

  19. 19

    如何在Python中修改或扩展标准套接字类?

  20. 20

    如何在Ruby的Array类中修改map函数的实现

  21. 21

    如何在代码中修改类对象参数

  22. 22

    如何在其子类中修改类的属性?

  23. 23

    如何在 SCSS 中为元素添加“修改”类

  24. 24

    如何使用C#中的公共超类修改对象列表的成员?

  25. 25

    如何在类中访问全局数据成员和成员函数?

  26. 26

    如何在类中访问全局数据成员和成员函数?

  27. 27

    如何在从成员函数调用的闭包中修改self?

  28. 28

    如何在C ++中限制对象私有数据成员的修改?

  29. 29

    如何在C ++中的专用模板类中访问模板类成员字段?

热门标签

归档