如何用JavaScript实现对象的五种继承方式?

2026-04-01 16:062阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1637个文字,预计阅读时间需要7分钟。

如何用JavaScript实现对象的五种继承方式?

利用构造函数+这种技术的核心思想非常简单,就是通过子类类型构造函数内部的内部调用,超类型构造函数。此外,函数不仅不限于特定环境中的代码执行的对象,因为可以通过使用apply()和call()方法来调用。

借用构造函数

这种技术的基本思想很简单,就是在子类型构造函数的内部调用超类型的构造函数。另外,函数只不过是在特定环境中执行代码的对象,因此通过使用apply()和call()方法也可以在新创建的对象上执行构造函数。

function Box(name){ this.name = name } Box.prototype.age = 18 function Desk(name){ Box.call(this, name) // 对象冒充,对象冒充只能继承构造里的信息 } var desk = new Desk('ccc') console.log(desk.name) // --> ccc console.log(desk.age) // --> undefined

从中可以看到,继承来的只有实例属性,而原型上的属性是访问不到的。这种模式解决了两个问题,就是可以传参,可以继承,但是没有原型,就没有办法复用。

阅读全文

本文共计1637个文字,预计阅读时间需要7分钟。

如何用JavaScript实现对象的五种继承方式?

利用构造函数+这种技术的核心思想非常简单,就是通过子类类型构造函数内部的内部调用,超类型构造函数。此外,函数不仅不限于特定环境中的代码执行的对象,因为可以通过使用apply()和call()方法来调用。

借用构造函数

这种技术的基本思想很简单,就是在子类型构造函数的内部调用超类型的构造函数。另外,函数只不过是在特定环境中执行代码的对象,因此通过使用apply()和call()方法也可以在新创建的对象上执行构造函数。

function Box(name){ this.name = name } Box.prototype.age = 18 function Desk(name){ Box.call(this, name) // 对象冒充,对象冒充只能继承构造里的信息 } var desk = new Desk('ccc') console.log(desk.name) // --> ccc console.log(desk.age) // --> undefined

从中可以看到,继承来的只有实例属性,而原型上的属性是访问不到的。这种模式解决了两个问题,就是可以传参,可以继承,但是没有原型,就没有办法复用。

阅读全文