首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

调用父类中的父函数,而不是子(同名) javascript

在JavaScript中,如果子类和父类都有同名的函数,但想要调用父类中的函数,而不是子类中的函数,可以通过以下几种方法实现:

  1. 使用super关键字:在子类的函数中使用super关键字,可以调用父类中的同名函数。例如:
代码语言:txt
复制
class Parent {
  sayHello() {
    console.log('Hello from parent');
  }
}

class Child extends Parent {
  sayHello() {
    super.sayHello(); // 调用父类中的同名函数
    console.log('Hello from child');
  }
}

const child = new Child();
child.sayHello();

输出:

代码语言:txt
复制
Hello from parent
Hello from child

推荐的腾讯云相关产品和产品介绍链接地址:暂无推荐。

  1. 使用父类的原型链:通过访问父类的原型链来调用父类中的同名函数。例如:
代码语言:txt
复制
function Parent() {}

Parent.prototype.sayHello = function() {
  console.log('Hello from parent');
}

function Child() {}

Child.prototype = Object.create(Parent.prototype); // 继承父类的原型链
Child.prototype.constructor = Child;

Child.prototype.sayHello = function() {
  Parent.prototype.sayHello.call(this); // 调用父类中的同名函数
  console.log('Hello from child');
}

const child = new Child();
child.sayHello();

输出:

代码语言:txt
复制
Hello from parent
Hello from child

推荐的腾讯云相关产品和产品介绍链接地址:暂无推荐。

  1. 使用call()或apply()方法:通过使用call()或apply()方法,将父类中的同名函数应用到子类实例上。例如:
代码语言:txt
复制
function Parent() {}

Parent.prototype.sayHello = function() {
  console.log('Hello from parent');
}

function Child() {
  Parent.call(this); // 调用父类中的同名函数
}

Child.prototype = Object.create(Parent.prototype); // 继承父类的原型链
Child.prototype.constructor = Child;

Child.prototype.sayHello = function() {
  console.log('Hello from child');
}

const child = new Child();
child.sayHello();

输出:

代码语言:txt
复制
Hello from parent
Hello from child

推荐的腾讯云相关产品和产品介绍链接地址:暂无推荐。

以上是调用父类中的父函数而不是子类中的函数的几种方法。通过使用这些方法,我们可以实现在JavaScript中灵活地调用父类的函数,以满足不同的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

子类调用父类的同名方法和属性

Python面向对象中,利用子类调用父类的同名方法和属性。...首先我们定义了两个父类,Master和School # @author: 北山啦 # FileName: 12子类调用父类的同名方法 # @time: 2022/6/5 14:54 #父类Master...,子类如何来调用呢 在这里,定义Prentice类,继承了Master和School类,添加了和父类同名属性和方法 调用子类的属性和方法 如果调用了父类的属性和方法,父类属性会自动掩盖子类属性,股灾调用属性前...__init__ print(f'运用{self.kongfu}制作煎饼果子') 调用父类属性和方法 如果调用父类方法,但是为了保障调用到的是父类的属性,必须在方法前调用父类的初始化...__init__(self) School.make_cake() 完整代码 # @author: 北山啦 # FileName: 12子类调用父类的同名方法 # @time: 2022

1.9K20
  • vue 父组件调用子组件的函数_vue子组件触发父组件方法

    1、使用场景 项目里将element-ui的el-upload写成公共组件方便调用,官方的before-upload方法用于处理上传前要做的事,如:比较文件大小,限制文件类型等,通过返回true 或 false...当该组件调用父组件方法,并且要能获取到父组件方法的返回值,如何实现? 2、问题说明 通常子组件调用父组件方法:this....$emit(方法名, 传参1, 传参2),但是此方法的返回值是vue对象,而不是父组件方法的return值。此时要用到高阶函数,传函数作为参数,父组件里执行该函数。...} } } 另一种实现方法:通过传Function,子组件可获取到父组件的方法。...export default { props: { // 子组件接收函数 beforeUpload: { type: Function

    3K20

    vue子组件传值给父组件_子组件调用父组件中的方法

    spm_id_from=trigger_reload 原理: 在父组件引用子组件时,通过事件绑定机制把一个方法aaaa的引用传给子组件,这个方法中可以有各种参数,子组件在触发自己的函数或者某些数据发生变化时...,触发:事件绑定机制绑定的函数,通过参数的方式将要传的值传过来,父组件中处理,也就接到了子组件的值 最开始父组件本身有一个方法 : fatherMethods fatherMethods(){...console.log('父组件的方法') } 步骤①:在子组件被调用的标签中,绑定一个父组件方法的引用 父组件通过事件绑定机制,也就是 @sendSon="fatherMethods" 方式传值给子组件..., 注意,这里是方法的引用,换句话就是把这个方法传递给子组件,而不是方法执行完以后的值,所以这里不能加括号 目的:把父组件的一个方法传给子组件 步骤② 给子组件写一个引发事件 子组件中写一个事件会触发一个子组件本身的方法...$emit('sendSon') } 步骤④ 子组件在调用父组件时,传参数 真正的父组件中并没有调用这个show方法,只有传给的子组件中调用了,调用就可以传参数,那么就在子组件中触发时候传参数

    4.2K20

    Vue中父组件如何调用子组件的方法

    在Vue开发过程中,我们经常需要在一个组件中调用另一个组件的方法。这篇文章将详细介绍如何在Vue中实现父组件调用子组件的方法。我们将以一个简单的例子来说明这个问题,并给出相应的解决方案。...首先,我们需要创建一个子组件和一个父组件。子组件将提供一个方法,而父组件将调用这个方法。子组件:中,我们通过this.$refs获取到了子组件实例(即childComponent),然后调用了子组件的closeSerialPort方法。这样就完成了父组件对子组件方法的调用。...需要注意的是,在调用子组件方法时,需要使用this.$refs来获取子组件实例。只有通过这种方式,才能确保我们在父组件中调用的是子组件的正确方法。...深入理解$refs$refs是Vue的一个特性,它允许你在Vue实例中引用组件或元素的DOM节点或组件实例。通过使用$refs,你可以直接操作子组件或DOM元素,而不需要使用指针或组件实例。

    1.3K00

    Java中类的加载机制---父类和子类的多态调用

    null 1) 上面程序最大的难点,也是最重要的地方就是:在父类的构造函数中调用了虚函数,并且这个函数被子类重载了 2) 继承的时候,子类与父类有着同名的属性和同名的方法,关于同名的属性的初始化过程也是必须要了解的...同名的属性会不会被覆盖掉,同名的方法就是多态,同名的方法之间的调用是怎么样的。...)当空间分配好之后,进行属性初始化,把值放在栈空间中,前面的第一步过程中物理空间存储地址 指向  这个栈空间,这样就完成了属性值的初始化; 3)当属性值完成了初始化的时候,就开始调用构造函数了,执行构造函数里面的代码块...这个过程说白了,就是一个类加载的时候,执行过程,必须等所有的存储空间都分配好,才能够赋值,而不是一个属性分配好变量之后立刻就赋值,这个理解是错误的。...;同名方法是多态,只会去调用子类的重载方法, 这个规则说白了,就是当有父类和子类的时候,必须都所有的存储空间都分配好了,才能执行  属性的初始化,继而是构造函数;同时要明白一点,子类的构造函数是在父类的构造完成之后才会去执行

    2.8K40

    C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)

    ”与“Chilid子窗体”之间如何相互的调用方法。...C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用) 看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写: C# Code: //父窗体是是frmParent,子窗体是frmChildA...//在父窗体中打开子窗体 frmChildA child = new frmChildA(); child.MdiParent = this; child.Show(); //子窗体调父窗体方法...如果父窗体与子窗体在同一个模块内看似没有错,因为这种反向引用在同一个模块内是可行的,但程序不能这么写,你把它写死了!固化了!...假设我们的项目不断在扩展,需要将父窗体与子窗体分开在不同的模块,这段代码就完了!因为父窗体模块必须引用子窗体模块,而子窗体需要用到frmParent的类,又要引用父窗体的模块!

    8.4K20

    创建子类对象时,父类构造函数中调用被子类重写的方法为什么调用的是子类的方法?

    但是:创建B对象父类会调用父类的方法? 答案: 当子类被加载到内存方法区后,会继续加载父类到内存中。...如果,子类重写了父类的方法,子类的方法引用会指向子类的方法,否则子类的方法引用会指向父类的方法引用。 如果子类重载了父类方法,则子类重载方法引用还指向子类方法。...如果子类方法没有重写也没有重载父类方法,则方法引用会指向父类方法。 当子类对象创建时,会先行调用父类的构造方法(构造方法也是方法),虚拟机会在子类方法区寻找该方法并运行。...其结果是当编译的时候,父类构造方法调用的方法的参数已经强制转换为符合父类方法的参数了。 上边代码在编译前已经转换为下面这个样子的了。...,是不是恍然大悟?

    6.2K10

    23.C++- 继承的多种方式、显示调用父类构造函数、父子之间的同名函数、virtual虚函数  上章链接: 22.C++- 继承与组合,protected访问级别

    C++中,继承方式共有3种: public继承 -指父类的成员(变量和函数)访问级别,在子类中保持不变 private继承 -指父类的成员,在子类中变为private私有成员....,编译器会默认调用父类无参构造函数 若有子类对象,也会默认调用子类对象的无参构造函数。...StrB(int i):123 也可以通过子类构造函数的初始化列表来显示调用 接下来,修改上面子类的StrB(string s)函数,通过初始化列表调用StrA(string s)父类构造函数 改为:...子类可以定义父类中的同名成员和同名函数 子类中的成员变量和函数将会隐藏父类的同名成员变量和函数 父类中的同名成员变量和函数依然存在子类中 通过作用域分辨符(::)才可以访问父类中的同名成员变量和函数...所以C++引入了虚函数概念,根据指针指向的对象类型,来执行不同类的同名覆盖成员函数,实现不同的形态 定义: 在父类成员函数的返回值前面,通过virtual关键字声明,这样便能访问子类中的同名成员函数了

    3.2K90

    【C++】继承 ⑥ ( 继承中的构造函数和析构函数 | 类型兼容性原则 | 父类指针 指向 子类对象 | 使用 子类对象 为 父类对象 进行初始化 )

    " 私有继承 " 的 派生类 , 是 不具有 基类 的 完整功能的 , 因为 最终继承 后的派生类 , 无法在 类外部调用 父类的 公有成员 和 保护成员 ; 2、类型兼容性原则应用场景 " 类型兼容性原则...// 父类对象 可以调用 父类公有函数 parent.funParent(); // 子类对象 可以调用 子类自身公有函数 child.funChild();...// 子类对象 可以调用 父类公有函数 child.funParent(); // 将指向子类对象的指针传给接收父类指针的函数 // 也是可以的 fun_pointer...// 通过父类指针调用父类函数 p_parent->funParent(); // 将指向子类对象的指针传给接收父类指针的函数 // 也是可以的 fun_pointer...类型兼容性原则 : 父类指针 指向 子类对象 Parent* p_parent2 = NULL; p_parent2 = &child; // 通过父类指针调用父类函数

    30820

    深入理解javascript中的继承机制(2)临时构造函数模式Uber – 从子对象调用父对象的接口将继承部分封装成函数

    为了解决前文提到的将共有的属性放进原型中这种模式产生的子对象覆盖掉父对象同名属性的问题,就出现了另一种模式,我们称作为临时构造函数模式 临时构造函数模式 我们具体通过代码来分析 function Shape...Uber – 从子对象调用父对象的接口 传统的面向对象的编程语言都会有子对象访问父对象的方法,比如java中子对象要调用父对象的方法,只要直接调用就可以得到结果了。...但在javascript中没有这样的语法,需要我们实现。...,给每个构造函数天价了一个uber属性,同时使他指向父对象的原型,然后更改了Shape的toString函数,更新后的函数,会先检查this.constructor是否有uber属性,当对象调用toString...时,this.constructor就是构造函数,找到了uber属性之后,就调用uber指向的对象的toString方法,所以,实际就是,先看父对象的原型对象是否有同String,有就先调用它。

    1.6K20

    ASP.NET AJAX(6)__Microsoft AJAX Library中的面向对象类型系统命名空间类类——构造函数类——定义方法类——定义属性类——注册类类——抽象类类——继承类——调用父类方

    _mymethod=function{throw Error.notImplemented();}}//包含抽象方法 类——继承 调用父类的构造函数 有父类的类必须调用父类的构造函数,否则会丢失继承效果...可以直接以普通方式实现父类的抽象成员 toString方法无法被继承 类——调用父类方法 MyNamespace.MyClass.prototype={myMethod:function(param1...= function(name) { MyNamespace.Intern.initializeBase(this, [name]);//调用父类构造函数 } MyNamespace.Intern.prototype...= function(name) { MyNamespace.Intern.initializeBase(this, [name]);//调用父类构造函数 } MyNamespace.Intern.prototype...= function(name) { MyNamespace.Intern.initializeBase(this, [name]);//调用父类构造函数 } MyNamespace.Intern.prototype

    6.2K50

    C++新旅程:三大特性之继承,详细介绍

    A类,A类中的打印函数也被继承了,所以B类的对象可以调用A类的成员函数,接下来我们修改一下代码,在B类中访问A类的成员变量 编译器告诉我们_a不可以被访问因为他是A类中的私有成员,而_A可以被访问因为他是...,效率高写法二这种写法相对比较麻烦,写的形参更多了4.1.2派生类构造函数的执行顺序结论:先调用基类构造函数,对基类数据成员初始化再调用子对象类的构造函数,对子对象的数据成员初始化最后执行派生类构造函数体中的语句...5.同名成员的处理假如在A类(基类)和B类(派生类)中有同名数据成员m,同名函数print(),那在类外面访问他们的时候会如果我们想调用A类中的函数print()和访问A类数据成员m,可以通过创建一个A...此时如果我们建一个B类的对象,访问数据成员m和调用函数print(),会产生二义性吗(冲突)总结: 1.子类对象可以直接访问到子类中同名成员2.子类对象加作用域可以访问到父类同名成员3.当子类与父类拥有同名的成员函数...,子类会隐藏父类中同名成员函数,加作用域可以访问到父类中同名函数补充继承同名静态成员处理方式问:继承中同名的静态成员在子类对象上如何进行访问?

    12410

    关于Java构造函数(Constructor)的常见问题总结1 为什么调用子类的构造方法的时候,默认会调用父类的构造方法2 常见错误:Implicit super constructor is und

    这就是为什么我们上面的那个例子程序会先调用super的构造方法。 但要切记,** 虽然调用了父类的构造方法,但只创建了一个对象也就是子对象。...** 之所以要调用父类的构造方法,是因为super类可能需要构造函数来初始化一些私有的成员变量。...上一小节,我们知道,如果子类的构造函数中,没有显示的调用父类的构造函数,那么,编译器就会插入super(),也就是自动调用无参的构造函数。但是此时,父类没有无参的构造函数,所以就会报错了。...解决这个问题很简单,我们可以给父类插入一个无参的构造函数,或者在子类构造函数中显示的调用的父类有参构造函数。 在子类的构造函数中显示的调用父类的构造函数 下面的代码是正确的。 ?...Paste_Image.png 构造函数的使用规则 简单的说,在使用的时候,子类的构造函数必须调用父类的构造函数,不管有没有显示的声明。所以,被调用的父类构造函数,一定在定义好!

    3K41

    React----组件生命周期知识点整理

    是否应该更新组件的方法来说,如果我们不重写父类该方法,那么该方法默认返回true,重写该方法,返回false,那么下面的流程就不会走了 父子组件 componentWillReceiveProps方法...,可简写{name},等同于{name:name} 注意: 区分类组件中自定义方法,而React会在创建完类实例后,通过类实例调用的方法 如果是自定义方法,React不会自己去调用,因此一般使用变量+箭头函数的形式...2.React组件中包含一系列勾子函数(生命周期回调函数), 会在特定的时刻调用。 3.我们在定义组件时,会在特定的生命周期回调函数中,做特定的工作。...---- 父子组件 在A的类组件的render方法中调用B组件的标签,此时A是父组件,B是子组件 class A extends React.Component { //初始化状态 state={...scrollHeight: 因为子元素比父元素高,父元素不想被子元素撑的一样高就显示出了滚动条,在滚动的过程中本元素有部分被隐藏了,scrollHeight代表包括当前不可见部分的元素的高度。

    1.5K40

    JavaScript继承的实现方式:原型语言对象继承对象原理剖析

    在经典的面向对象语言中,您可能倾向于定义类对象,然后您可以简单地定义哪些类继承哪些类(参考C++ inheritance里的一些简单的例子),JavaScript使用了另一套实现方式,继承的对象函数并不是通过复制而来...,而是通过原型链继承 回顾《再谈javascriptjs原型与原型链及继承相关问题》 什么是原型语言  只有对象,没有类;对象继承对象,而不是类继承类。 ...初始化内部属性 :这一步骤不是必要的。通俗点说,就是,对”复制品”不满意,我们可以”再加工”,使之获得不同于”模板”的”个性”。  所以在JavaScript的世界里,万物皆对象这个概念从一而终。...组合式继承 调用父类构造函数,继承父类的属性,通过将父类实例作为子类原型,实现函数复用 function Woman(name,age){   People.call(this,name,age)...ES6 的继承机制完全不同,实质是先创造父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。

    79120
    领券