继承对象的所有方法(包括“构造函数”),但修改其中的一些方法

时间:2010-05-14 10:55:09

标签: javascript jquery

让我们假设我们有对象Animal

$.Animal = function(options) {
  this.defaults  = { name : null }
  this.options   = $.extend(this.defaults, options);
}

$.Animal.prototype.saySomething = function() {
  alert("I'm animal!");
}

现在我想创建Cat对象。它绝对类似于$ .Annimal,但是方法saySomething()看起来就像这个......

$.Cat.prototype.saySomething = function() {
  alert("I'm cat!");
}

如何从Animal继承创建新对象Cat并重新定义saySomething()方法?

谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

$.Cat=$.Dog.constructor; //Set the constructor
$.Cat.constructor=$.Dog.constructor;
var Native=function(){}; //Copy the prototype object
Native.prototype=$.Dog.prototype;
$.Cat.prototype=new Native();
//Assign new method
$.Cat.prototype.saySomething = function() {
  alert("I'm cat!");
}