我正在Binary Search Tree
用 Javascript 实现一个简单的方法,但我无法理解 Javascript OOP 的做事方式。
在我的insertHelper
方法中,我为 root 分配了一个新的BinaryNode
但在函数返回后,它仍然null
是我this
在方法中显式使用的指针insert
。那么有人可以帮我解释一下吗?
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);