js中继承的几种用法总结(apply,call,prototype)

JS中继承的几种用法总结(apply, call, prototype)

在JavaScript中,继承是一种通过一个对象获取另一个对象属性和方法的方式。在JavaScript的原始版本中,没有标准的面向对象编程方式,但是通过使用JavaScript中的一些基本原则和技巧,我们可以轻松地实现继承。

在JavaScript中,我们可以使用apply,call以及原型链继承方式来实现对象的继承。接下来我们将对这些继承方式进行详细介绍。

  1. apply与call的继承方式

apply和call是两种JS中调用函数的方式,它们可以改变函数执行时的上下文环境。其中,apply方法可以给一个对象的属性或方法赋值,使用方法是:apply(thisObj, args)。

下面是apply方法继承的代码示例:

function Person(name) {
  this.name = name;
}

function Student(name, age) {
  Person.apply(this, [name]);
  this.age = age;
}

var s = new Student("张三", 18);
console.log(s.name); //输出张三
console.log(s.age); //输出18

这里,Student继承了Person的属性和方法,通过调用Student函数的apply方法,将Person对象的属性和方法复制给Student对象。

同样,有一个call方法,使用方法是:call(thisObj, arg1, arg2, ...),它也可以实现继承。

function Person(name) {
  this.name = name;
}

function Student(name, age) {
  Person.call(this, name);
  this.age = age;
}

var s = new Student("张三", 18);
console.log(s.name); //输出张三
console.log(s.age); //输出18

相比于apply,call的使用方法略有不同,更适合参数刚好相符的情况。

  1. 原型链继承

原型链继承是指在子类中通过prototype对象引用父类的prototype属性,从而实现继承。

function Person(name) {
  Person.prototype.name = name;
}

function Student(age) {
  this.age = age;
}

Student.prototype = new Person("张三");

var s = new Student(18);
console.log(s.name); //输出张三
console.log(s.age); //输出18

这里,子类Student通过prototype对象继承了父类Person的属性和方法,从而实现了继承。

总结:

在JavaScript中,我们可以通过使用apply,call和原型链方式来实现对象的继承。其中,apply和call的使用方法相对较为简单,但是只能继承属性,而无法继承方法。原型链继承方式复杂一些,但可以同时继承属性和方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中继承的几种用法总结(apply,call,prototype) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript的防抖节流函数解析

    下面就来详细讲解“JavaScript的防抖节流函数解析”的完整攻略。 一、防抖函数 1.1 什么是防抖函数? 防抖函数是一种常用的JS功能,用于延迟搜索框或输入框等交互操作的调用时间,以提高用户的体验和性能。防抖函数会等待用户停止操作,并只在停止时才执行一次操作。 1.2 防抖函数的实现 下面是一个基本的防抖函数示例代码: function debounc…

    JavaScript 2023年6月11日
    00
  • javascript时间戳和日期字符串相互转换代码(超简单)

    下面是详细讲解“javascript时间戳和日期字符串相互转换代码(超简单)”的攻略: 时间戳和日期字符串的定义 时间戳是1970年1月1日00:00:00(格林威治标准时间)起至现在的总秒数,通常为一个整数。 日期字符串是一个按照一定格式表示的时间文本,常用的格式包括“年-月-日 时:分:秒”、“月/日/年 时:分:秒”等。 时间戳转日期字符串 // 时间…

    JavaScript 2023年5月27日
    00
  • JS支付页面倒计时的实现示例

    下面是“JS支付页面倒计时的实现示例”的完整攻略。 确定倒计时截止时间 在进行倒计时实现前,需要确定倒计时的时间截止点。假设我们的支付页面需要在用户提交订单30分钟后自动关闭,则倒计时截止时间应设置为30分钟之后的时间点。 在JavaScript中,可以使用Date对象来获取当前时间,并通过setMinutes和setSeconds方法来设置倒计时截止时间。…

    JavaScript 2023年6月11日
    00
  • jquery checkbox 勾选的bug问题解决方案与分析

    关于“jQuery Checkbox 勾选的 Bug 问题解决方案与分析”,我们来进行一番详细的讲解。 问题描述 在 jQuery 中,我们经常会用到“复选框”(checkbox)这个元素。比如说我们希望用户在注册时选择自己的性别,就可以用到男、女两个 checkbox。但是在实际开发中,我们可能会遇到以下问题: 当用户选择某一个 checkbox 时,其他…

    JavaScript 2023年6月10日
    00
  • .NET中弹出对话框的方法汇总

    “.NET中弹出对话框的方法汇总”是一篇用于介绍在.NET环境下如何弹出对话框的攻略文章,下面将对这篇文章做一个详细的讲解,介绍其具体内容和所包含的示例。 概述 文章的第一部分介绍了.NET中弹出对话框的必要性和使用场景,并梳理了常用的几种对话框类型。 MessageBox 在第二部分中,文章详细地介绍了使用MessageBox弹出对话框的方法,并提供了多个…

    JavaScript 2023年6月11日
    00
  • 利用Javascript实现一套自定义事件机制

    下面我将详细讲解利用JavaScript实现一套自定义事件机制的完整攻略。 什么是自定义事件机制 自定义事件机制是指在JavaScript中,我们可以通过创建和监听自定义事件来实现一种机制,用于让我们的代码在特定情况下能够执行某些操作。与原生事件相比,自定义事件可以达到一些原生事件无法达到的效果,例如可以扩展传递数据、可以自定义触发时机等。 实现自定义事件机…

    JavaScript 2023年6月10日
    00
  • Javascript单例模式的介绍和实例

    当我们开发一些复杂的web应用时,我们难免会需要创建一些全局预留变量或者共享某些对象,这时候单例模式就可以派上用场了。 什么是单例模式 首先,单例模式是一种创建型的设计模式。它实现了一个类只能够被创建一次的功能。简单来说,就是当某个类只需要一个实例时,就可以使用单例模式。 单例模式的实现 要实现单例模式,可以采用以下几种方式: 立即执行函数 立即执行函数是实…

    JavaScript 2023年6月10日
    00
  • layui的表单验证支持ajax判断用户名是否重复的实例

    以下是使用layui实现表单验证并通过ajax判断用户名是否重复的攻略: 1. 准备工作 首先,需要在网页中引入layui的核心文件和layui的form模块。可以通过以下方式在HTML文档中引入layui的核心文件和form模块: <!– 引入layui核心文件 –> <script src="https://cdn.jsd…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部