美文网首页
React基础篇之复习总结

React基础篇之复习总结

作者: 硅谷干货 | 来源:发表于2021-12-13 14:23 被阅读0次

类的基本知识

<script type="text/javascript" >
  /* 
    总结:
      1.类中的构造器不是必须要写的,要对实例进行一些初始化的操作,如添加指定属性时才写。
      2.如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super是必须要调用的。
      3.类中所定义的方法,都放在了类的原型对象上,供实例去使用。
  */
  //创建一个Person类
  class Person {
    //构造器方法
    constructor(name,age){
      //构造器中的this是谁?—— 类的实例对象
      this.name = name
      this.age = age
    }
    //一般方法
    speak(){
      //speak方法放在了哪里?——类的原型对象上,供实例使用
      //通过Person实例调用speak时,speak中的this就是Person实例
      console.log(`我叫${this.name},我年龄是${this.age}`);
    }
  }

  //创建一个Student类,继承于Person类
  class Student extends Person {
    constructor(name,age,grade){
      super(name,age)
      this.grade = grade
      this.school = '尚硅谷'
    }
    //重写从父类继承过来的方法
    speak(){
      console.log(`我叫${this.name},我年龄是${this.age},我读的是${this.grade}年级`);
      this.study()
    }
    study(){
      //study方法放在了哪里?——类的原型对象上,供实例使用
      //通过Student实例调用study时,study中的this就是Student实例
      console.log('我很努力的学习');
    }
  }
  
  class Car {
    constructor(name,price){
      this.name = name
      this.price = price
      // this.wheel = 4
    }
    //类中可以直接写赋值语句,如下代码的含义是:给Car的实例对象添加一个属性,名为a,值为1
    a = 1
    wheel = 4
    static demo = 100
  }
  const c1 = new Car('奔驰c63',199)
  console.log(c1);
  console.log(Car.demo);
</script>

原生事件绑定

<script type="text/javascript" >
  const btn1 = document.getElementById('btn1')
  btn1.addEventListener('click',()=>{
    alert('按钮1被点击了')
  })

  const btn2 = document.getElementById('btn2')
  btn2.onclick = ()=>{
    alert('按钮2被点击了')
  }

  function demo(){
    alert('按钮3被点击了')
  }

</script>

类方法中的this指向

<script type="text/javascript" >
  class Person {
    constructor(name,age){
      this.name = name
      this.age = age
    }
    study(){
      //study方法放在了哪里?——类的原型对象上,供实例使用
      //通过Person实例调用study时,study中的this就是Person实例
      console.log(this);
    }
  }

  const p1 = new Person('tom',18)
  p1.study() //通过实例调用study方法
  const x = p1.study
  x()

</script>

展开运算符

<script type="text/javascript" >
  let arr1 = [1,3,5,7,9]
  let arr2 = [2,4,6,8,10]
  console.log(...arr1); //展开一个数组
  let arr3 = [...arr1,...arr2]//连接数组
  
  //在函数中使用
  function sum(...numbers){
    return numbers.reduce((preValue,currentValue)=>{
      return preValue + currentValue
    })
  }
  console.log(sum(1,2,3,4));

  //构造字面量对象时使用展开语法
  let person = {name:'tom',age:18}
  let person2 = {...person}
  //console.log(...person); //报错,展开运算符不能展开对象
  person.name = 'jerry'
  console.log(person2);
  console.log(person);

  //合并
  let person3 = {...person,name:'jack',address:"地球"}
  console.log(person3);
  
</script>

对象相关的知识

<script type="text/javascript" >
  let a = 'name'

  let obj = {} // {name:'tom'}
  obj[a] = 'tom'
  console.log(obj);
  
</script>

函数的柯里化

<script type="text/javascript" >
  /* function sum(a,b,c){
    return a+b+c
  } */
  
  function sum(a){
    return(b)=>{
      return (c)=>{
        return a+b+c
      }
    }
  }
  const result = sum(1)(2)(3)
  console.log(result);
</script>

相关文章

网友评论

      本文标题:React基础篇之复习总结

      本文链接:https://www.haomeiwen.com/subject/xmmvxrtx.html