$ var Node = function(){ this.someval = 0; }
undefined
$ var node = new Node();
undefined
$ node.someval
0
$ Node.next_id = 0
0
$ Node.prototype.constructor = function() { this.someval = Node.next_id++; }
function() { this.someval = Node.next_id++; }
$ var node2 = new Node();
undefined
$ node2.someval
0
$ var node3 = new Node();
undefined
$ node3.someval
0
为什么next_id ++按预期工作?我期待next_id随着每次调用new Node()
而增加,从而为每个节点分配一个新的id。在Javascript中分配唯一标识号
设置“原型”对象的“构造函数”属性不会做你看起来想象的那样。 – Pointy
'Node.prototype.constructor = function(){this.someval = Node.next_id ++; }'不会自动改变'Node'。 –
我看到了,所以我不得不说var Node = function(){this.someval = Node.next_id ++; } – lowerkey