zoukankan      html  css  js  c++  java
  • ES6-面向对象

    1.老版的面向对象:

     1 function User(name,pass){
     2     this.name=name;
     3     this.pass=pass;
     4 }
     5 User.prototype.showName=function(){//用原型加方法
     6     console.log(this.name);
     7 }
     8 User.prototype.showPass=function(){//用原型加方法
     9     console.log(this.pass);
    10 }
    11 var ul=new User("blue","123456");
    12 ul.showName();//blue
    13 ul.showPass();//123456

    老版的问题:

    (1)类和构造函数是一个问题;

    (2)散开了,先写了一个函数,方法是后加进去的。

    2.新版的面向对象

     1 class User{
     2     constructor(name,pass){//作用相似于构造器
     3         this.name=name;
     4         this.pass=pass;
     5 }
     6 showName(){
     7     console.log(this.name);
     8 }
     9 showPass(){
    10         console.log(this.pass);
    11     }
    12 }
    13 var ul=new User("red","7890");
    14 ul.showName();//red
    15 ul.showPass();//7890            

    (1)新增了class关键字,构造器和类分开了;

    (2)class里直接加方法。

     3.老版的继承

     1 function User(name,pass){
     2     this.name=name;
     3     this.pass=pass;
     4 }
     5 User.prototype.showName=function(){//用原型加方法
     6     console.log(this.name);
     7 }
     8 User.prototype.showPass=function(){//用原型加方法
     9     console.log(this.pass);
    10 }
    11 //继承
    12 function Vipuser(name,pass,level){
    13     User.call(this,name,pass);
    14     this.level=level;
    15 }
    16 Vipuser.prototype=new User();
    17 Vipuser.prototype.constructor=Vipuser;
    18 Vipuser.prototype.showLevel=function(){
    19     console.log(this.level);
    20 }
    21 var v1=new Vipuser('blue','123456',3);
    22 v1.showName();//blue
    23 v1.showPass();//123456
    24 v1.showLevel();//3

     4.新版的继承

     1 class User{
     2     constructor(name,pass){//作用相似于构造器
     3         this.name=name;
     4         this.pass=pass;
     5 }
     6 showName(){
     7     console.log(this.name);
     8 }
     9 showPass(){
    10         console.log(this.pass);
    11     }
    12 }            
    13 //继承
    14 class Vipuser extends User{//extends关键字:继承父类
    15     constructor(name,pass,level){
    16         super(name,pass);//执行父类的构造函数
    17         this.level=level;
    18     }
    19     showLevel(){
    20         console.log(this.level);
    21     }
    22 }
    23 var v1=new Vipuser('blue','123456',3);
    24 v1.showName();
    25 v1.showPass();
    26 v1.showLevel();    

     5.面向对象的应用-React

    React:

    (1)组件化——class

    (2)强依赖于jsx(也就是babel,browser.js)

     1 class Test extends React.Component{
     2   constructor(...args){//继承组件所有的属性
     3     super(...args);
     4 }
     5 render(){
     6     return <li>{{this.prop.str}}</li>
     7   }
     8 }
     9 window.onLoad=function(){
    10   let oDiv=document.getElementById('div1');
    11   ReactDom.render(
    12     <ul>
    13       <Test str='asd'></Test>
    14       <Test str='fgh'></Test>
    15     </ul>
    16      oDiv
    17    );
    18 }    
  • 相关阅读:
    02-qiankun-gitsubmodule使用及部署流程
    01-eslint/vetur/preitter/vscode配置
    01-mac m1 安装nvm / node-sass报错
    17-JS数组方法,是否改变原数组归纳
    03-webpack之require.context()实现前端工程自动化
    最小生成树prim算法
    bfs
    数据结构实验三题目一
    邻接表
    邻接矩阵
  • 原文地址:https://www.cnblogs.com/czh64/p/11941798.html
Copyright © 2011-2022 走看看