最近在看ES6,看到了对象上添加了不少新的方法,其中有一个assign()方法是用来给对象添加属性和值,于是想到了对象继承,下面上代码
function Animal(){ this.type="猫科动物"; } function Cat(name,color){ this.name=name; this.color=color; } Cat.prototype.size="big"; Object.assign(Cat.prototype,new Animal());//推荐用这种方法进行继承,既不会覆盖原型对象,也不会改变构造器指向 // Cat.prototype=new Animal();//改变了构造器指向,同时覆盖了原型对象 let cat1=new Cat("cat1","red") console.log(cat1.size+cat1.type); console.log(cat1.constructor);
利用assgin()方法不会对原型对象进行覆盖,也就不会更改构造器的指向
如果对各位有帮助请点个赞,有不足的地方也请指正