var Ninja = function() {
   this.swingSword = function() {
       return true
   }
}
Ninja.swingFire = function() {
   return true
}

var ninja = new Ninja()
assert(ninja.swingFire()) // undefined

因此,它正在创建Ninja的新对象,但是为什么在这种情况下不包含swingFire?有人可以解释为什么吗?

最佳答案

使用new创建的实例将从constructor.prototype继承,而不是从构造函数对象本身继承。这将表现为您想要的:

Ninja.prototype.swingFire = function() {
   return true;
}

10-08 16:16