类的理解

 1 // 创建一个person类
2 class Person {
3 /* */
4 // 构造器方法
5 constructor(name, age) {
6 // this指向 => 类的实例对象
7 this.name = name;
8 this.age = age;
9 }
10 // say 方法放在了哪里? => 类的原型对象上,为实例所用,也叫实例方法
11 // 通过person实例调用say时,say方法中的this就是person实例 (也就是new出来的实例对象)
12 say() {
13 console.log(`说话的方法, ${this.name}在说话`);
14 }
15 }
16 // 创建一个person的实例对象
17 var P1 = new Person("范顺", 18);
18 // P1.say()
19 // console.log(P1.__proto__.say === Person.prototype.say) // true
20
21 // 创建一个student类,继承与person
22 class Student extends Person {
23 //继承与person的属性,
24 constructor(name, age, type) {
25 super(name, age); /* super 函数帮助调用父类的构造器*/
26 this.type = type;
27 }
28 say() {
29 /* 重写父类方法,该方法存在student的原型对象上,所有说S1直接调用*/
30 console.log(`说话的方法, ${this.name}在说话, 并说我不${this.type}`);
31 }
32 speak() {}
33 }
34 var S1 = new Student("小明", 16, "是坏孩子");
35 console.log(S1);
36
37 S1.say(); // 调用say方法,say方法是父类p1.__proto__也就是person.prototype的原型对象的方法,以为student子类继承了person父类,通过原型链的规则(也就是S1.__proto__.__proto__),找到父类的方法

上述这个简单的例子理解了,下面类组件就理解了

class类 和 react类组件的更多相关文章

  1. 为什么需要在 React 类组件中为事件处理程序绑定this?

    https://juejin.im/post/5afa6e2f6fb9a07aa2137f51 事件绑定作为回调函数参数传递给函数,丢失其上下文,执行的是默认绑定,不是隐式绑定 类声明和类表达式的主体 ...

  2. [转]C#调用C++类(以COM组件的形式)

    如果想用C#调用C/C++写的函数,可以先将C/C++的函数写成dll文件,由C#用DllImport的方式来调用,但是这种方法无法调用C++写的类,如果想调用C++类,可以先把C++类封装成COM组 ...

  3. reactjs入门到实战(七)---- React的组件的生命周期

    React的组件的生命周期有三个状态分别是:挂载(生产组件示例化.准备挂载到页面.挂载到页面).更新(更新值.更新DOM).和卸载(卸载后). >>>其他     getInitia ...

  4. React的组件用法

    React.createClass() 中文翻译 https://discountry.github.io/react/3.4K ( https://doc.react-china.org868 ) ...

  5. React Native组件、生命周期及属性传值props详解

    创建组件的三种方式 第一种:通过ES6的方式创建 /** * 方式一 :ES6 */ export default class HelloComponent extends Component { r ...

  6. react创建组件的几种方式及其区别

    react创建组件有如下几种方式 ①.函数式定义的无状态组件 ②.es5原生方式React.createClass定义的组件   ③.es6形式的extends React.Component定义的组 ...

  7. React 面向组件化编程 - 封装了webpack - npm run build 产生的包的 /static 引用路径问题

    React 面向组件化编程 面向对象 ----> 面向模块 ----> 面向组件 套路: 注意: 组件名必须大写开头: 只能有一个根标签: <input />虚拟DOM 元素必 ...

  8. React 学习(一) ---- React Element /组件/JSX

    学习React的时候,你可能听到最多的就是要先学习webpack, babel,要先学会配置然后才能学react 等等,一堆的配置就把我们吓着了,根本就没有心情就学习react了.其实在最开始学习re ...

  9. React创建组件的三种方式及其区别

    内容转载于http://www.cnblogs.com/wonyun/p/5930333.html React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归; 具体的三种方式: ...

  10. beeshell —— 开源的 React Native 组件库

    介绍 beeshell 是一个 React Native 应用的基础组件库,基于 0.53.3 版本,提供一整套开箱即用的高质量组件,包含 JavaScript(以下简称 JS)组件和复合组件(包含 ...

随机推荐

  1. PCRaster安装

    改了很久才import成功.期间查了不少东西,虽然大部分没用上,但还是记录一下. PCRaster的安装和个人的最终解决方法 Software for environmental modelling ...

  2. 4.javaweb-thymeleaf

    1.知识回顾: 1. post提交方式下的设置编码,防止中文乱码 request.setCharacterEncoding("utf-8"); get提交方式,tomcat8开始, ...

  3. PyTorch中的矩阵乘法

    1. 二维矩阵乘法   , 其中 , , 输出 的维度是.该函数一般只用来计算两个二维矩阵的矩阵乘法,而且不支持broadcast操作. 2. 三维带Batch矩阵乘法  由于神经网络训练一般采用mi ...

  4. npm & cnpm 淘宝源

    前提:如果确实需要多版本的情况可以使用nvm 可以方便的安装和切换多版本! --nvm ls --nvm use 12.4.0 永久npm 设置淘宝源npm config set registry h ...

  5. MySQLdb安装

    yum seach MySQL-Python sudo yum install MySQL-python.x86_64 import MySQLdb

  6. python中时间的datatime的模块

    datetime.datetime.now().strftime('%Y-%m-%d-%H_%M_%S')1.python datetime模块用strftime 格式化时间 import datet ...

  7. linux上安装nmon

    转载:https://blog.csdn.net/qq_35304570/article/details/813510651.新建目录:mkdir/nmon2.下载nmon包到本地 http://nm ...

  8. 删除Mac版word上方的Mathtype

    原因 Mac升级到macOS Catalina v10.15.3发现mathtype用不了, Mathtype官网说目前暂时不支持这个版本的系统. 现在尴尬的是, mathtype删除了, 但一不小心 ...

  9. 关于Appium执行用例过程中问题处理办法

    关于Appium执行用例过程中问题处理办法 1.     运行环境 1.1 windows10   64位系统 1.2 华为荣耀V10   Android 9 1.3 appium-desktop 1 ...

  10. 个人数据保全计划:(2) NAS基础知识

    前言 距离去年国庆入手了NAS至今有好几个月时间了,NAS折腾起来有点麻烦,且实际作用因人而异,并没有想象中的好用,所以说好的这个系列一直没有更新~ 还有另一方面的原因,这些NAS的系统基于Linux ...