Я полностью сбит с толку, почему 'cb' не является функцией в моем случае.
В основном у меня есть конструктор 'Tree'
this.value = value;
this.children = [];
};
Tree.prototype.addChild = function (value){
var newInstance = new Tree(value);
this.children.push(newInstance);
}
Tree.prototype.map = function(cb){
var copyTree = new Tree(this.value); //1
copyTree.value = cb(copyTree.value);
for (var i = 0; i < this.children.length; i++){ // i = 0; 2 i = 0's value is 2
copyTree.addChild(new Tree.prototype.map(cb(this.children[i].value)))
}
return copyTree;
}
и затем в консоли Я передал
var root1 = new Tree(1)
var branch1 = root1.addChild(2);
var branch2 = root1.addChild(3);
Теперь каждый раз, когда я вызываю
var newTree = root1.map(function (value) {
return value * 2 })
, я получаю эту ошибку.
VM1769 Script snippet %231:13 Uncaught TypeError: cb is not a function
at new Tree.map (VM1769 Script snippet %231:13)
at Tree.map (VM1769 Script snippet %231:19)
at <anonymous>:1:21
Я знаю, что мой метод отображения может меня не смущает, но тот факт, что 'cb' не является функцией, сбивает меня с толку, я передаю анонимную функцию при вызове .map, но .. 'cb' не функция? Почему это?