克隆JavaScript类的最佳方法

Pas*_*ass 4 javascript clone class

我有一个阶级宣称传统的方式,即

function MyClass() {
}

MyClass.prototype = {
};
Run Code Online (Sandbox Code Playgroud)

现在我想创建该类的副本(不是类创建的实例的副本),而是更改一些原型方法.换句话说,我想用一些扩充来制作一个类的副本......我是否需要使用继承呢?或者它足以循环并为原始原型和新原型分配对我的新类的引用?

Nea*_*all 9

我会使用普通继承.试试这个:

var MyClass = function(){};
MyClass.prototype = {
  foo: function(){ alert('foo') },
  bar: function(){ alert('bar') }
};

var MySubClass = function(){};
MySubClass.prototype = new MyClass();
MySubClass.prototype.bar = function(){ alert('otherbar') };

var my = new MyClass();
var mysub = new MySubClass();
my.foo(); // foo
my.bar(); // bar
mysub.foo(); // foo
mysub.bar(); // otherbar
Run Code Online (Sandbox Code Playgroud)

  • 2年+ 2个月后,我想问一下我是如何克隆具有输入参数的构造函数的? (3认同)