作业是用js实现树,第一反应就是先创建一个类, 但是遇到的问题是push没有被定义,也就是说childs没有识别成数组 想请问一下各位前辈 怎么修改 #Title #Code #Error
匿名函数拿不到自己的this
抛砖引玉 -> 答案慎点 还有问一下题目哪来的,出的不错。
@ianchn 外教出的题目
来自酷炫的 CNodeMD
@starhiking 箭头函数绑定了定义箭头函数所在作用域的上下文this,setChilds方法里面这个this固定成了全局的this
function tree(){ this.str=""; this.childs=[]; } tree.prototype.setChild = function(kid){ this.childs.push(kid); };
自有的属性不应该写到prototype里面的
@godghdai 感谢 刚才我将function改过来之后 三个对象的childs都指向同一个地址,把str和childs不放在prototype解决了问题 谢谢指点
@ianchn 数据结构没什么问题吧,因为不一定是二叉树,可能有很多子节点
这是没搞清楚箭头函数绑定的是那个作用域的this!我同事就经常干这事的orz
@starhiking 你问问你们外教吧,binary tree 是什么,只能说你把题目想的太简单了。你也可以把我的答案给外教看看有没有满分。(滑稽)
@ianchn 真看错了😂 没仔细看
知道重写原型需要手动指定constructor,居然不知道箭头函数会绑定外部作用于的this.还有不是所有属性都应该定义在prototype里的.
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
匿名函数拿不到自己的this
抛砖引玉 -> 答案慎点 还有问一下题目哪来的,出的不错。
@ianchn 外教出的题目
来自酷炫的 CNodeMD
@starhiking 箭头函数绑定了定义箭头函数所在作用域的上下文this,setChilds方法里面这个this固定成了全局的this
来自酷炫的 CNodeMD
自有的属性不应该写到prototype里面的
@godghdai 感谢 刚才我将function改过来之后 三个对象的childs都指向同一个地址,把str和childs不放在prototype解决了问题 谢谢指点
@ianchn 数据结构没什么问题吧,因为不一定是二叉树,可能有很多子节点
这是没搞清楚箭头函数绑定的是那个作用域的this!我同事就经常干这事的orz
@starhiking 你问问你们外教吧,binary tree 是什么,只能说你把题目想的太简单了。你也可以把我的答案给外教看看有没有满分。(滑稽)
@ianchn 真看错了😂 没仔细看
知道重写原型需要手动指定constructor,居然不知道箭头函数会绑定外部作用于的this.还有不是所有属性都应该定义在prototype里的.