Javascript的原型继承(原型prototype机制和apply和call方法)

Function.prototype.apply()与Function.prototype.call()小结 JavaScript 中,某个函数的参数数量是不固定的,因此要说适用条件的话,当你的参数是明确知道数量时,用 call,而不确定的时候,用 apply,然后把参数 push 进数组传递进去。当参数数量不确定时,函数内部也可以通过 arguments 这个数组来便利所有的参数 立即下载

Javascript如何实现继承?

1、构造继承
2、原型继承
3、实例继承
4、拷贝继承

【1】:原型prototype机制

function Parent() {
	this.name = 'lle';
}

function Child() {
	this.age = 18;
}

// 通过原型链让Child继承Parent
Child.prototype = new Parent();
let demo = new Child();

console.log(demo.name);

【2】:apply()

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

function Student(name, age, grade) {
	Person.apply(this, arguments);
	this.grade = grade;
}

let lle = new Student('lle', '18', '6');
console.log('name: ', lle.name, ',age: ', lle.age, ',grade ', lle.grade

【3】 :  call()

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

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

let lle = new Student('lle', '18', '6');
console.log('name: ', lle.name, ',age: ', lle.age, ',grade ', lle.grade);

后两种概述: JavaScript 中通过call或者apply用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。简单的说就是改变函数执行的上下文,这是最基本的用法。两个方法基本区别在于传参不同。

  • call(obj,arg1,arg2,arg3);call第一个参数传对象,可以是null。参数以逗号分开进行传值,参数可以是任何类型。
  • apply(obj,[arg1,arg2,arg3]);apply第一个参数传对象,参数可以是数组或者arguments对象。
Rstudio安装org.Hs.eg.db 自己也是个小白,初次安装org.Hs.eg.db碰到好多问题,步骤总结如下: 第一,instal.packages()安装,不行则换 BiocManager::install() 第二,如BiocManager不成,说明不是最新版本,可按提示安装最新版 BiocManager::install(version = '3.13') #由于R版本较新,按照提示中的相关信息,安装最新版本的 第三,再次安装 BiocManager::install("org.Hs.eg.db") 第四,之后每个人. 阅读详情

相关推荐

【技术笔记】Cadence实现Orcad与Allegro软件交互式布局设置

为了达到原理图和PCB两两交互的功能,需要在ORCAD中将允许交互进行勾选,这样才可以,执行菜单命令Options-Preference后,我们打开参数界面,进行选择Miscellaneous菜单,将交互模式进行勾选。在做硬件pcb设计的时候,原理图选中一个元器件,希望可以再PCB中可以直接选中。对于网表必须是导入第一方网表,第三方是无效的。在allegro中使能/关闭交互式布局功能。

weixin_50499137的博客 2079

js笔记——原型(prototype)、原型链、call/apply

原型 定义:原型是function对象的一个属性,它定义了构造函数制造出对象的公共祖先。通过该构造函数产生的对象可以继承该原型的属性和方法。原型也是对象。 Person.prototype.name = "lijing"; Person.prototype.say = function () { console.log("prototype:say"); } function Pers...

芊雨的博客 278

STM32—时钟树(结合系统时钟函数理解)

时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处。心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来驱动,而这个脉冲的始源往往是由外部晶体振荡器提供时钟输入,最终转换为多个外部设备的周期性运作。这种时钟“能量”的传递路径犹如大树的养分由主干流向个分支,因此称为时钟树。 STM32时钟: 在STM32...

肥宅快乐博客 1万+

继承、原型继承、prototype、call和apply的继承、原型链继承、原型继承中的注意事项、深浅拷贝、

prototype prototype属性: 对于类而言,prototype保存着所有实例的方法,即 所有的实例方法都是在prototype中保存着,平时我们在使用实 例方法时,虽然用对象直接调用,但是真正的保存是在 prototype中。在继承中prototype的作用更加明显; 我们创建的每个函数都有一个属性是prototype(原型) ,这是属性是一个指针,指向一个对象,该对象的用途是包含所 有实例共享的属性和方法。 案例 fun

John_Wick___的博客 233

OpenCV和Halcon分别实现彩色图像的白平衡效果

实现白平衡算法中的灰度世界法,能有效改善图像发红/发蓝/发绿的现象 1、OpenCV #include <opencv2/opencv.hpp> using namespace cv; int main() { Mat g_srcImage,dstImage; vector<Mat> g_vChannels; g_srcImage = im...

$firecat利白的代码足迹$ 2829

Adobe软件非正版弹窗终极解决方案:PS/Ai/PR/AE禁用提示一键清除指南

本文提供了Adobe软件非正版弹窗的终极解决方案,包括PS、Ai、PR、AE等软件的禁用提示一键清除指南。通过专业清理工具和手动修改系统文件的方法,帮助用户彻底解决Adobe弹窗问题,提升使用体验。适用于Windows和Mac系统用户,操作简单高效。

weixin_30872337的博客 5367

Function.prototype的apply&call(.apply.call())

他们作用均为改变函数的this指向 function.call(thisArg, arg1, arg2, …) func.apply(thisArg, [argsArray]) 先来一个问题:说出下面代码产生的结果以及原因 参考 stackoverflow let myArray = Array.apply(null, {length: 10}).map(Number.call, Numbe...

Ethan's Blog 422

STM32入门教程:车牌识别

在本文中,我们介绍了如何使用STM32实现车牌识别功能,并提供了详细的代码案例。通过以上步骤,你可以开始开发自己的车牌识别系统了。希望本文对你有所帮助!

2401_85258012的博客 874

【JavaScript】原型继承详解

在面向对象编程中,继承是一个对象可以从另一个对象获得属性和方法的机制。JavaScript 使用原型继承而非类继承,每个对象都有一个隐式关联的原型对象(通过__proto__引用),并且可以访问该原型对象的属性和方法。构造函数是 JavaScript 中用于创建对象的函数。通过使用new关键字,可以调用构造函数并创建新的对象实例。每个构造函数都会自动拥有一个prototype属性,指向一个包含所有实例共享属性和方法的对象。// 输出:Dog在这个例子中,Animal是一个构造函数,dog是。

lph159的博客 2049

解锁RK3588多屏异显:MIPI+HDMI+EDP混合输出全攻略

本文详细介绍了RK3588处理器在MIPI+HDMI+EDP混合输出配置中的技术实现与应用。作为一款高性能处理器,RK3588凭借其强大的图形处理能力,支持多屏异显功能,可满足智能安防、工业控制等领域的多屏显示需求。文章从硬件连接、设备树配置、内核驱动设置到显示参数调整,系统阐述了配置流程,并针对信号不稳定、显示模式不匹配等常见问题提供了解决方案。通过智能安防监控案例,展示了该技术在提高监控效率方面的实际应用价值。随着技术进步,RK3588多屏异显技术将在更多领域发挥重要作用,为开发者提供灵活多样的显示方案

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2433

CLAHE 算法学习 matlab

概念可参考: CLAHE (Contrast Limited Adaptive Histogram Equalization)算法学习CLAHE具体实现主要包括6个步骤。1):分块。将输入图像划分为大小相等的不重叠子块,每个子块含有的像素数为M。参考示例为8×8块。 2):计算子块直方图。 3):计算剪切阈值clipLimit 4):像素点重分配。对每个子块,使用步骤三中多余的像素重新分配。 5):直方图均衡。 6):像素点灰度值重构。(源码中采用了双线性插值) http://www.realtimer

baidu_34971492的博客 4253

Function.prototype.apply.call和Function.prototype.call.apply

本系列文章是本人学习相关知识时所积累的笔记,以记录自己的学习历程,也为了方便回顾知识;故文章内容较为随意简练,抱着学习目的来的同学务必转移他处,以免我误人子弟~ Function.prototype.apply.call和Function.prototype.call.apply有什么用以及区别 Function.prototype.apply.call(fn, obj, args) 相当...

zyh_haha的博客 524

全志A133的AndroidSDK

本小节来学习如何下载全志安卓SDK,SDK的目录,编译和烧录提示:以下是本篇文章正文内容,下面案例可供参考以上就是整个SDK的目录和编译烧录,目的在于让初学者快速了解整个源码的目录和编译出镜像喜欢就订阅吧。

qq_24093081的博客 4054

什么是原型、原型链、继承?

prototype的概念: 每一个构造函数都有一个prototype属性,这个属性会在生成实例的时候,成为实例对象的原型对象。javascript的每个对象都继承另一个对象,后者称为“原型”对象。 prototype原型: ...

xiao___fang的博客 5447

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

继承关系_浅析5种Javascript继承关系的应用

在Javascript中如何实现继承关系的应用?Javascript继承概念:js是基于对象的,他没有类的概念,所以实现继承,需要使用js的原型prototype机制或者用applay和call方法实现。1、原型链继承:即子类通过prototype将所有在父类中通过prototype追加的属性和方法都追加到Child,从而实现了继承为了让子类继承父类的属性(也包括方法),首先需要定义一个...

weixin_29227425的博客 98

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

万字干货|JavaScript 从零基础到原型链完整学习笔记(第三期)

HTML 是网页骨架,CSS 是页面美化,JavaScript 是网页交互的灵魂。本文基于完整 JS 学习手册整理,覆盖基础语法、数组、定时器、DOM/BOM、面向对象、原型链、ES6、正则、运动动画全体系知识点,配套可运行代码、底层内存图解、面试核心考点,适合前端入门自学、期末复习、面试复盘。

2501_92407443的博客 374

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

简述原型、原型链和继承

原型、原型链和继承原型原型链继承 原型 每一个构造函数都有一个 prototype 属性,这个属性会在生成实例的时候, 成为实例对象的原型对象。javascript 的每个对象都继承另一个对象,后者称为“原型”(prototype)对象。 原型链 每一个对象都有一个 proto 属性,对象的属性和方法,有可能定义在自 身,也有可能定义在它的原型对象。由于原型本身也是对象,又有自己的原型,所 以形成了一条原型链(prototype chain)。(“原型链” 的作用是:读取对象的某个属 性时,JavaScri

yzkdcsdn的博客 1111

JavaScript的继承机制详谈

JavaScript对象的创建,原型,this关键字,new命令

weixin_47166787的博客 1064

js继承

每当我们说到js的继承时,在您的脑袋的第一反应就是prototype原型机制来实现。但是您是否使用过其他的方法来实现继承呢,或者您是否了解其他实现方式及各种不同的继承实现机制的优缺点呢?好了,下面我们就来看看几种比较常见的继承实现吧。1、 prototype方式 1var BaseClass =function() 2 3{ 4 5    this.name = "3zfp"; 6

老A 365

JavaScript 构造函数的继承

JavaScript 构造函数的继承传奇文学 https://www.xs86.com 在上一篇文章中讲述了 JS 对象、构造函数以及原型模式,这篇文章来讨论下 JavaScript 的继承 继承是 OO 语言中的一个最为人津津乐道的概念。许多 OO 语言都支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。如前所述,由于函数没有签名,在 ECM...

终极冥帝 205

javascript原型、原型链、继承详解

在JavaScript中,call和apply是两个用于调用函数的方法。call。它接收一个参数列表,并将每个参数传递给函数。第一个参数thisArg是可选的,用于指定函数中的this值。如果不传递thisArg,默认为全局对象(在浏览器中是window对象)。call方法会立即调用函数。${${this在这个例子中,call方法将person对象作为第一个参数传递给了greet函数。函数执行后,this.name将会是person对象的name属性。输出将会是。

jieyucx的博客 2037

我理解的call、apply、bind和__proto__、prototype

第一部分 call、apply、bind call、apply、bind都是修改函数内部的this指向。 函数调用call方法,函数内部的this指向call方法的第一个参数,call方法的其他参数会作为函数的实参传递,函数会立即执行。 函数调用apply方法,函数内部的this指向apply方法的第一个参数,apply方法的第二个参数是函数的实参组成的数组,函数会立即执行。 函数调用bind...

yanzhi的博客 372

js中的继承

js的继承和诸如C#、java等面向对象的继承在原理上有很大的差别:js的继承借助this关键字和原型对象prototype实现。 对象冒充:   借助this关键字,给所有的属性、方法赋值,也就是采用类声明的构造函数方式。因为构造函数只是一个函数,所以,可以使ClassA的构造函数,成为ClassB的一个方法,然后调用它,这样一来,ClassB就收到了ClassA的构造函数中定义的属性和方法

李黎敏 ——为优秀j2ee架构师而努力 2010

继承和多态

继承 当子类继承父类对象时,可以直接拿到父类下的属性和方法无需自己重新定义,减少代码写作,js下是单继承,用原型链实现 原型链 每个构造器都有一个原型对象,原型对象包含一个指向构造器的指针,name我们让原型对象指向另一个对象实例,就会实现机制 例如: function Father(){ this.name="张三" this.say=function(){console.log(this.name)} ...

weixin_47775987的博客 178

java 原型图_一张图搞懂原型、原型对象、原型链

基本概念在javascript中,函数可以有属性。 每个函数都有一个特殊的属性叫作原型(prototype)每个对象拥有一个原型对象 [[Prototype]] / __proto__ / Object.getPrototypeOf(object1)通过原型对象一级一级的往上找的这个过程就是原型链原型每个函数都有一个特殊的属性叫作原型(prototype), 默认为空函数,可以重写function...

weixin_28890941的博客 1136

js补充3

JSON格式的使用,作为各开发语言沟通的桥梁 let aa = { name:'xiaming', age:10 } // 转换成JSON格式 , JSON格式的类型是字符串 // 第二个参数是数组的时候,数组内的值代表转换成json格式的属性 // 第三个参数代表返回的json格式前面带有几个空格 console.log(JSON.stringify(aa,['name'],2)); // { // "name": "xiaming" // } // 这个方法还可以对数组进行JSON格式的转

qq_39773416的博客 228
上一篇: 有趣的新技能,css水平垂直居中的特种方式。
下一篇: javascript 的两种继承方式 (构造函数的继承、非构造函数的继承)
Keyboard_Handler
博客等级 码龄10年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值