21xrx.com
2024-12-22 21:32:05 Sunday
登录
文章检索 我的文章 写文章
如何解决JavaScript无法调用父类函数的问题?
2023-06-16 10:35:26 深夜i     --     --
JavaScript 继承 call apply Object

JavaScript作为一门面向对象的编程语言,也拥有继承的特性。在继承中,子类可以继承父类的属性和方法。但是,在JavaScript中存在着一个问题,就是子类无法直接调用父类的函数。

但是,我们可以通过一些方法来解决这个问题。下面介绍几种方法:

1.使用call方法

call方法可以将一个函数的对象上下文从原来的上下文改变为由thisObj指定的新对象。

代码实现:


function Parent()

  this.name = 'parent';

Parent.prototype.sayName = function() {

  console.log(this.name)

}

function Child() {

  Parent.call(this)

  this.name = 'child';

}

var child = new Child()

child.sayName() // 输出 'child'

2.使用apply方法

apply方法和call方法类似,只是参数不同。apply方法的参数是一个数组,而call方法是一个参数列表。

代码实现:


function Parent()

  this.name = 'parent';

Parent.prototype.sayName = function() {

  console.log(this.name)

}

function Child() {

  Parent.apply(this)

  this.name = 'child';

}

var child = new Child()

child.sayName() // 输出 'child'

3.使用Object.create方法

Object.create方法可以实现一个对象继承另一个对象的prototype属性。

代码实现:


function Parent()

  this.name = 'parent';

Parent.prototype.sayName = function() {

  console.log(this.name)

}

function Child() {

  Parent.apply(this)

  this.name = 'child';

}

Child.prototype = Object.create(Parent.prototype)

Child.prototype.constructor = Child

var child = new Child()

child.sayName() // 输出 'child'

以上就是解决JavaScript无法调用父类函数的方法了。通过这些方法,子类就可以很方便地调用父类的函数了。

.create。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复