千家信息网

js如何实现拷贝继承

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章给大家分享的是有关js如何实现拷贝继承的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。父类代码如下:// 定义一个动物类function Animal (name)
千家信息网最后更新 2025年02月02日js如何实现拷贝继承

这篇文章给大家分享的是有关js如何实现拷贝继承的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

父类代码如下:

// 定义一个动物类function Animal (name) {  // 属性  this.name = name || 'Animal';  // 实例方法  this.sleep = function(){    console.log(this.name + '正在睡觉!');  }}// 原型方法Animal.prototype.eat = function(food) {  console.log(this.name + '正在吃:' + food);};

拷贝继承

function Cat(name){  var animal = new Animal();  for(var p in animal){    Cat.prototype[p] = animal[p];  }  // 如下实现修改了原型对象,会导致单个实例修改name,会影响所有实例的name值  // Cat.prototype.name = name || 'Tom'; 错误的语句,下一句为正确的实现  this.name = name || 'Tom';}// Test Codevar cat = new Cat();console.log(cat.name);console.log(cat.sleep());console.log(cat instanceof Animal); // falseconsole.log(cat instanceof Cat); // true

特点:

  • 支持多继承

缺点:

  • 效率较低,内存占用高(因为要拷贝父类的属性)

  • 无法获取父类不可枚举的方法(不可枚举方法,不能使用for in 访问到)

感谢各位的阅读!关于"js如何实现拷贝继承"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0