一、ES6---面向对象上的简化

1.单个对象提供了2处简化:

1.1 如果对象的属性来自于对象外的变量,且变量名刚好和属性名相同。则不用写两遍相同的名字,

只要写一遍即可。

1.2 所有对象的方法,不再需要写“:function”

强调:对象中的方法去掉:function,就不等效于箭头函数。突出特点就是this保持原样不变!

所以,去掉:function,只是单纯的简写,没有任何原理的改变。

      var eid=1001;
        function intrSelf(){
            console.log(`我的编号是${this.eid}`);
        }
        var friends=["亮亮","然然","东东"];
        var eric={
            eid,// eid:eid,
            ename:"诶里克",
            intrSelf,// intrSelf:intrSelf
            friends,// friends:friends
            run(){ //:function(){
                console.log(`${this.ename}在奔跑`);
            }
        }
        console.log(eric);
        eric.intrSelf();
        eric.run();
 
二、class
      什么是:集中定义一种类型的所有对象统一属性结构和方法的程序结构
      为什么:每一种类型:Array Student Date都有两部分组成:构造函数+原型对象
       构造函数:负责定义所有子对象统一的属性结构,并且负责创建子对象。
       原型对象:负责保存所有子对象共有的属性值和方法。
但是,在ES5中,构造函数和原型对象是分开定义的。不符合"封装"的要求。
       何时:今后只要希望创建一种自定义类型时,都用class
       如何:3件事
               1.用class{}包裹构造函数和原型对象方法
               2.构造函数名提升为class名,所有构造函数,从此统一更名为constructor
               3.所有放在class中的函数,不需要加类型名.prototype前缀,自动就是保存在构造函数的原型对象中。
                如何使用class:用法和从前的构造函数完全一样!原型对象的原理依然保持不变。
   //1.用class{}包裹构造函数和原型对象方法
        class  Student{
            //2.构造函数名提升为class名,所有构造函数
            //更名为constructor
         constructor(sname,sage){
            this.sname=sname;
            this.sage=sage;
         }
        //3.所有原型对象方法,不用加类型名.prototype前缀!
        intrSelf=function(){
          console.log(`I'm ${this.sname},I'${this.sage}`);
         }
        run=function(){
          console.log(`${this.sname}开始奔跑....`);
         }
        } 
         var lilei=new Student("Li Lei",11);
         var hmm=new Student("Han Meimei",12);
         console.log(lilei);
         console.log(hmm);
         lilei.intrSelf();
         lilei.run();
         hmm.intrSelf();
         hmm.run();
 

ES6---面向对象上的简化的更多相关文章

  1. ES6——面向对象应用

    面向对象应用——React 特点:     1.组件化(模块化) --- class(一个组件就是一个class)     2.强依赖与JSX (JSX==babel==browser.js  是JS ...

  2. 【Java基础】面向对象上

    面向对象上 这一章主要涉及 Java 类及类的成员,包括属性.方法.构造器:代码块.内部类. 面向过程与面向对象 面向过程(Procedure Oriented Programming,POP)与面向 ...

  3. java第三节 面向对象(上)

    //第三讲 //面向对象(上) /* 理解面向对象的概念 面向过程 在一个结构体中定义窗体的大小,位置,颜色,背景等属性,对窗口操作的函数窗口本身的定义没有任何关系 如HideWindow, Move ...

  4. ES6面向对象 动态添加标签页

    HTML <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml&quo ...

  5. Java基础学习(三)—面向对象(上)

    一.理解面向对象       面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是 ...

  6. JS - ES5与ES6面向对象编程

    1.面向对象 1.1 两大编程思想 1.2 面向过程编程 POP(Process-oriented programming) 1.3 面向对象编程 OOP (Object Oriented Progr ...

  7. ES6 面向对象笔记

    JS面向对象两大编程思想 面向过程 面向对象 面向过程编程POP         面向过程就是分析出问题的需要步骤,然后用函数一步一步的实现,使用的时候一个一个调用就可以了 面向对象编程OOP     ...

  8. io.js入门(二)—— 所支持的ES6(上)

    io.js的官网上有专门介绍其所支持的ES6特性的页面(点我查看),上面介绍到,相比nodeJS,io.js已从根本上支持了新版V8引擎上所支持的ES6特性,无需再添加任何运行时标志(如 --harm ...

  9. python学习笔记六 初识面向对象上(基础篇)

    python面向对象   面向对象编程(Object-Oriented Programming )介绍   对于编程语言的初学者来讲,OOP不是一个很容易理解的编程方式,虽然大家都知道OOP的三大特性 ...

随机推荐

  1. 2019-2020-1 20199310《Linux内核原理与分析》第六周作业

    1.问题描述 在前面的文章中,学习了系统调用的相关理论知识,并使用库函数API和C代码中嵌入汇编代码两种方式使用getpid()系统调用.本文将内容围绕系统调用system_call的处理过程,在Me ...

  2. 2019-2020-1 20199328《Linux内核原理与分析》第八周作业

    笔记部分 2019/11/4 17:55:22 elf文件代码默认加载到0x8048000,然后是一段首部信息,然后到达程序的真实入口 正常的系统调用会先进入内核态->用户态->系统调用下 ...

  3. 2019-2020-1 20199329《Linux内核原理与分析》第二周作业

    <Linux内核原理与分析>第二周作业 一.上周问题总结: 未能及时整理笔记 Linux还需要多用 markdown格式不熟练 发布博客时间超过规定期限 二.本周学习内容: <庖丁解 ...

  4. Bat 脚本 删除某一行

    findstr /v /i /c:"kiwi" /c:"oranges" myfile.txt >newfile.txt

  5. Windows SDK 的 ctype.h 里有一些有用的函数,例如字符串的大小写转换

    #define _tolower(c) ((c) - 'A' + 'a') #define _toupper(c) ((c) - 'a' + 'A')

  6. 【Linux常见命令】mv命令

    mv - move (rename) files mv命令用来为文件或目录改名.或将文件或目录移入其它位置. 语法: mv [OPTION]... [-T] SOURCE DEST mv [OPTIO ...

  7. Element UI表格组件技巧:如何简洁实现跨页勾选、跨页统计功能

    业务场景 在使用Element UI的Table组件时,常常面对这样的业务需求: 表格数据的每一项都要提供勾选框,当切换分页时,能够记忆所有页面勾选的数据,以实现批量提交不同页面勾选数据的功能.并且, ...

  8. HDU 4009 Transfer water(最小树形图)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4009 题意:给出一个村庄(x,y,z).每个村庄可以挖井或者修建水渠从其他村庄得到水.挖井有一个代价, ...

  9. 【ElasticSearch学习】之一图读懂文档索引全过程

    ES索引过程详解: 1.客户端发送索引请求. 客户端向ES节点发送索引请求,以RestClient客户端发起请求为例: ES提供了Java High Level REST Client,用户可以通过R ...

  10. C++入门编程题目 NO.1

    题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. #incl ...