```js
function Person(arg) {
 if (this.name == undefined)  this.name = arg ? arg : "tom";
 console.log("Name: " + this.name);
}
Person.prototype.setName = function(value) {
 this.name = value;
};
Person.prototype.getName = function() {
 return this.name;
};
var myobj = {name : "james"};
var new_func = Person.bind(myobj);
new_func();     // Name: james
var obj = new new_func();   // Name: tom
console.log(obj.getName());   // tom
```

Is there anyone who can explain why the last two codes show me "tom" rather than "james"?

In my thought, the new\_func is binding the myobj to the Person constructor function, so the obj Object should be a instance of the Person and also it should be bound to myobj. But it appeared whole differently.