前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

继承

作者头像
星辰_大海
发布于 2020-10-14 01:40:53
发布于 2020-10-14 01:40:53
45100
代码可运行
举报
文章被收录于专栏:h5学习笔记h5学习笔记
运行总次数:0
代码可运行

1.call()

ES6之前并没有给我们提供extends继承。我们可以通过构造函数+原型对象模拟实现继承,被称为组合继承

调用这个函数并且修改函数运行时的this指向

fun. call (thisArg, arg1, arg2, ...)

  • thisArg : 当前调用函数this的指向对象
  • arg1 , arg2 :传递的其他参数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 function fn(x, y) {
     console.log(this);
     console.log(x + y);
}
  var o = {
    name: 'andy'
  };
  fn.call(o, 1, 2);//调用了函数此时的this指向了对象o,
  • call()可以调用函数
  • call()可以修改this的指向,使用call()的时候 参数一是修改后的this指向,参数2,参数3..使用逗号隔开连接

2.子构造函数继承父构造函数中的属性

核心原理:通过call()把父类型的this指向子类型的this , 这样就可以实现子类型继承父类型的属性。

  1. 先定义一个父构造函数
  2. 再定义一个子构造函数
  3. 子构造函数继承父构造函数的属性(使用call方法)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 // 1. 父构造函数
 function Father(uname, age) {
   // this 指向父构造函数的对象实例
   this.uname = uname;
   this.age = age;
 }
  // 2 .子构造函数 
function Son(uname, age, score) {
  // this 指向子构造函数的对象实例
  //3.使用call方式实现子继承父的属性
  Father.call(this, uname, age);
  this.score = score;
}
var son = new Son('刘德华', 18, 100);
console.log(son);

3.借用原型对象继承方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 1. 父构造函数
function Father(uname, age) {
  // this 指向父构造函数的对象实例
  this.uname = uname;
  this.age = age;
}
Father.prototype.money = function() {
  console.log(100000);
 };
 // 2 .子构造函数 
  function Son(uname, age, score) {
      // this 指向子构造函数的对象实例
      //3.使用call方式实现子继承父的属性
      Father.call(this, uname, age);
      this.score = score;
  }
// Son.prototype = Father.prototype;  这样直接赋值会有问题,如果修改了子原型对象,父原型对象也会跟着一起变化
  Son.prototype = new Father();
  // 如果利用对象的形式修改了原型对象,别忘了利用constructor 指回原来的构造函数
  Son.prototype.constructor = Son;
  // 这个是子构造函数专门的方法
  Son.prototype.exam = function() {
    console.log('孩子要考试');}
  var son = new Son('刘德华', 18, 100);
  console.log(son);

如上代码结果如图:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
跟着Molecular Ecology学数据分析:使用R语言对群体SNP数据做主成分分析
找到了一本电子书 https://bookdown.org/hhwagner1/LandGenCourse_book/ 里面用到这篇文章的数据做了群体PCA,今天的推文我们试着重复一下这本电子书中的代码
用户7010445
2021/12/01
1.1K0
跟着Molecular Ecology学数据分析:使用R语言对群体SNP数据做主成分分析
ggtree-给你的进化树盛世美颜
ggtree是ggplot2的拓展包,可以应用于进化树的绘制,还能对进化树丰富的注释分析。
作图丫
2022/03/29
12.3K0
ggtree-给你的进化树盛世美颜
目前最全的R语言-图片的组合与拼接
李誉辉,四川大学硕士在读,研究数据分析与可视化,以及网络爬虫。誉辉兄最近出的文章都是很系统的,从R ggplot2的基础讲解到三维数据可视化plot3D,文章都整理讲解得很全面系统,我本人也是很喜欢这样的文章,故而推荐给大家。
生信宝典
2019/09/29
5.6K0
目前最全的R语言-图片的组合与拼接
ggplot2优雅的绘制配对连线云雨图
❝本节来介绍如何使用ggplot2绘制配对连线云雨图,图形倒也简单主要是细节;小编给了两个案例来进行展示,有循环绘图需求的可以看最后一个案例;❞ 加载R包 library(tidyverse) library(ggsignif) library(gghalves) library(ggsci) 数据清洗 df <- read_tsv("data.xls") %>% filter(year %in% c(1957,2007),continent !="Oceania") %>% select(
R语言数据分析指南
2022/12/20
9700
ggplot2优雅的绘制配对连线云雨图
RNA-seq 详细教程:可视化(12)
当我们处理大量数据时,以图形方式显示该信息以获得更多信息,可能很有用。在本课中,我们将让您开始使用探索差异基因表达数据时常用的一些基本和更高级的图,但是,其中许多图也有助于可视化其他类型的数据。
数据科学工厂
2023/02/27
9820
RNA-seq 详细教程:可视化(12)
R tips:ggplot2进行多维原位图绘制
R中可以使用ggplot2的geom_tile图层绘制热图,可是有的时候我们想要每一个热图格子里面可以展示多维的信息:多个基因表达量、多个组别数据等等,而不是一个热图仅展示了一个表达量信息。本文可以解决这个需求。
生信菜鸟团
2025/01/07
1160
R tips:ggplot2进行多维原位图绘制
R:ggtext包丰富ggplot2中文本的表现力
ggtext让ggplot2图像也可以使用html、markdown及css语法,丰富了ggplot2文本的表现力。
生信菜鸟团
2020/12/03
1.8K0
R:ggtext包丰富ggplot2中文本的表现力
技术贴:R语言拼图全面介绍
说起R语言的拼图,可能大家一点都不陌生,比如常用的“cowplot”和“patchwork”。gridExtra包也提供了一个拼图函数”grid.arrange“。另外,南方医科大学余光创教授也开发了一个更为神奇的拼图R包:aplot。本文将依次对它们的用法进行介绍。
作图丫
2022/03/29
5.9K0
技术贴:R语言拼图全面介绍
119-R可视化37-利用循环实现ggplot批量作图并拼图
其实简单的R 拼图,我喜欢patchwork 的加减乘除。但这种4x4 布局的图片,对象又多,一个个创建不现实;代码写起来,也非常不优雅。
北野茶缸子
2022/04/05
6.4K0
119-R可视化37-利用循环实现ggplot批量作图并拼图
R tips:使用最近邻算法进行空间浸润带的计算
以10X的官方xenium示例数据为例https://www.10xgenomics.com/datasets/ffpe-human-breast-with-pre-designed-panel-1-standard。
生信菜鸟团
2025/02/18
1290
R tips:使用最近邻算法进行空间浸润带的计算
「R」cowplot(一)介绍
cowplot是ggplot2包的一个简单插件(或称拓展包),它的目的是为ggplot2提供一个出版级别的主题,使用少量代码即可实现主题统一的修改,如轴标签大小、画图背景。它主要的作用是可以给研究生和博士后更加容易的画图。
王诗翔呀
2020/07/06
2.4K0
「R」cowplot(一)介绍
数据可视化编程实战_大数据可视化
经常有对比R,Python和Julia之间的讨论,似乎R语言在这三者之中是最为逊色的,实则不可一概而论。
全栈程序员站长
2022/11/17
8.8K0
数据可视化编程实战_大数据可视化
R tips:进一步的debug并修复cnetplot绘图bug
在R升级到4.0+后,clusterProfiler的cnetplot会报如下的rescale错误,这个现象以及解决方法在以前的推文:R tips:debug并修复一个ggplot2绘图错误的例子中曾经说过。现在再提到一次,主要是对这个现象进一步的进行深入探讨,并给出一个更加优雅的解决办法。
生信菜鸟团
2022/05/24
3.3K0
R tips:进一步的debug并修复cnetplot绘图bug
独家 | 不同机器学习模型的决策边界(附代码)
本文利用Iris数据集训练了多组机器学习模型,并通过预测大量的拟合数据绘制出了每个模型的决策边界。
数据派THU
2020/04/14
1.9K0
独家 | 不同机器学习模型的决策边界(附代码)
生信技能树R语言学习直播配套笔记
1.1 判断数据类型class() 1.2 按Tab键自动补全1.3 数据类型的判断和转换 (1)is 族函数,判断,返回值为TRUE或FALSE
生信技能树
2022/06/08
1.2K0
生信技能树R语言学习直播配套笔记
108-R可视化32-通过seurat包中的LabelClusters学习ggplot之一
在先前的内容里:[[66-R可视化10-自由的在ggplot上添加文本(柱状图加计数)]],我们提到过添加文本的方法。但是,对于散点图来说,我们需要找到的是一个坐标,而这个坐标,最好可以反映位置散点的中心或附近区域,对这个坐标进行标识。
北野茶缸子
2022/04/05
1.1K0
108-R可视化32-通过seurat包中的LabelClusters学习ggplot之一
R tips:使用glmnet进行正则化广义线性模型回归
线性模型的建模为了提高模型的泛化能力,一般会进行正则化处理,也就是在损失函数的构造上加上正则化项,如L1正则化项或者L2正则化项,L1正则化也就是常说的Lasso回归,将损失函数加上了L1范数,L2正则化就是Ridge回归,损失函数加上了L2范数。正则化项的大小是通过一个超参数(一般命名为lambda)控制,lambda越大则正则化项作用越强,拟合的模型系数会变小或变成0,这个超参数一般使用Cross-validation交叉验证来获取。
生信菜鸟团
2022/04/08
4.6K0
R tips:使用glmnet进行正则化广义线性模型回归
RNA-seq 详细教程:可视化(12)
当我们处理大量数据时,以图形方式显示该信息以获得更多信息,可能很有用。在本课中,我们将让您开始使用探索差异基因表达数据时常用的一些基本和更高级的图,但是,其中许多图也有助于可视化其他类型的数据。
数据科学工厂
2023/01/29
7400
r语言同时画两张图(如何用布局和视口出图)
par(mfrow=c(2,2)),可以理解将绘图区域分割为2×2的矩阵区域,另可参照《R语言实战》3.5图形的组合
全栈程序员站长
2022/07/31
2.5K0
r语言同时画两张图(如何用布局和视口出图)
全网最全的R语言基础图形合集
直方图是一种对数据分布情况进行可视化的图形,它是二维统计图表,对应两个坐标分别是统计样本以及该样本对应的某个属性如频率等度量。
生信学习者
2024/06/12
1130
全网最全的R语言基础图形合集
推荐阅读
相关推荐
跟着Molecular Ecology学数据分析:使用R语言对群体SNP数据做主成分分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档