JS 的 new 到底是干什么的?( 二 )


new 操作为了记录「临时对象是由哪个函数创建的」,所以预先给「士兵.prototype」加了一个 constructor 属性:
士兵.prototype = { constructor: 士兵}如果你重新对「士兵.prototype」赋值,那么这个 constructor 属性就没了,所以你应该这么写:
士兵.prototype.兵种 = "美国大兵"士兵.prototype.攻击力 = 5士兵.prototype.行走 = function(){ /*走俩步的代码*/}士兵.prototype.奔跑 = function(){ /*狂奔的代码*/ }士兵.prototype.死亡 = function(){ /*Go die*/ }士兵.prototype.攻击 = function(){ /*糊他熊脸*/ }士兵.prototype.防御 = function(){ /*护脸*/ }或者你也可以自己给 constructor 重新赋值:
士兵.prototype = { constructor: 士兵, 兵种:"美国大兵", 攻击力:5, 行走:function(){ /*走俩步的代码*/}, 奔跑:function(){ /*狂奔的代码*/ }, 死亡:function(){ /*Go die*/ }, 攻击:function(){ /*糊他熊脸*/ }, 防御:function(){ /*护脸*/ }}完 。

【JS 的 new 到底是干什么的?】


推荐阅读