请看https://
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new```
When the code new foo(...) is executed, the following things happen:
1. A new object is created, inheriting from foo.prototype.
2.The constructor function foo is called with the specified arguments and this bound to the newly created object. new foo is equivalent to new foo(), i.e. if no argument list is specified, foo is called without arguments.
3.The object returned by the constructor function becomes the result of the whole new expression. If the constructor function doesn't explicitly return an object, the object created in step 1 is used instead. (Normally constructors don't return a value, but they can choose to do so if they want to override the normal object creation process.)
```
第一步的时候,Men的prototype还不是Person对象,第二步才是执行constructor,而在你的代码中这时才改Men的prototype, 晚了。