Вы возвращаете простой новый объект из вашего конструктора, объект this
внутри вашего конструктора вообще не используется, и этот объект является тем, которому назначен правильный объект-прототип.
function dTree() {
this.init = function(data) {
this.data = data;
};
this.node = function(i){
return '' + i;
};
}
dTree.prototype.toString = function() {
var str = '';
for(var i = 0; i < this.data.length; i++) {
str += this.node(this.data[i]);
};
return str;
};
dTree1 = new dTree();
dTree1.init([1,2,3]);
alert(dTree1 + '');