ES6中的继承,String类型方法的拓展

ES6中的继承:

    主要是依赖extends关键字来实现继承,使用了extends实现继承不一定要constructorsuper,因为没有的话会默认产生并调用它们。

    在实现继承时,如果子类中有constructor函数,必须得在constructor中调用一下super函数,因为它就是用来产生实例this的。

 super当成函数调用时,代表父类的构造函数,且返回的是子类的实例,也就是此时super内部的this指向子类。在子类的constructorsuper()就相当于是Parent.constructor.call(this)

/**
 * ES6 继承 
 * 子类继承父类 
 * 子类原型对象继承父类原型对象
 */
class Animal{
  constructor(type,weight,length){
    this.type = type;
    this.weight = weight;
    this.length = length;
  }
  sayType(){
    console.log(this.type,'这是animal实例公共方法')
  }
  static AnimalAttr = 'Animal静态属性';
  static AnimalMethod = function(){
    console.log('这是Animal静态方法')
  }
}
// 子类使用extends关键字实现对父类得继承
class Dog extends Animal{
  // 如果子类提供了构造器必须显示调用super函数
  constructor(type,weight,length,name,color){
    super(type,weight,length);//类似于Animal.call()
    this.name = name;
    this.color = color;
  };
}
let d1 = new Dog('狗','40kg','20cm','可乐','白色');
console.log(d1);
d1.sayType();
console.log(Dog.AnimalAttr);
console.log(Dog.AnimalMethod());
// 子类对父类继承 
console.log(Dog.__proto__ === Animal);
// 子类原型对象继承父类得原型对象
console.log(Dog.prototype.__proto__ === Animal.prototype);
console.log(d1.constructor);

String类型方法的拓展

    在ES5中所了解的String类型方法有charAt、charCodeAt、slice、upperCase、lowerCase、replace、split、indexOf、lastIndexOf····

    ES6又对String类型方法进行了拓展:

1.trim

        单独去除字符串前后空格

let str = ' hello world ';
console.log(str.trim());
console.log(str);

        单独去除前面空格 trimStart 别名trimLeft

//单独去除前面空格 trimStart 别名trimLeft
console.log('2'+str.trimStart()+'2');
console.log('2'+str.trimLeft()+'2');

        单独去除后面空格 trimEnd 别名trimRight

// 单独去除后面空格 trimEnd 别名trimRight
console.log('2'+str.trimEnd()+'2')
console.log('2'+str.trimRight()+'2')
2.padStart

        从头部添加字符串 填充字符串长度 填充字符(默认空格)

// padStart 从头部添加字符串 填充字符串长度 填充字符(默认空格)
let str = 'es8';
console.log(str.padStart(4),'2'+str);
console.log(str.padStart(4,'h'));
console.log(str.padStart(2));//填充字符串长度小于源字符串长度 返回源字符串
console.log(str.padStart(6,'ab'));

代码运行结果如下: 

3.padEnd

        从尾部添加字符串 填充字符串长度 填充字符(默认空格)

// padEnd 从尾部添加字符串 填充字符串长度 填充字符(默认空格)
console.log(str.padEnd(4)+'2');
console.log(str.padEnd(4,'h'));
console.log(str.padEnd(2));//填充字符串长度小于源字符串长度 返回源字符串
console.log(str.padEnd(6,'45'));

 代码运行结果如下:

4.toString 

        将引用数据类型全部转为字符串显示

function foo(){
  console.log('我是函数');
  // 我是函数内的注释
    return ;
}
console.log(foo.toString());

代码运行结果如下:

5.replaceAll

        将字符串中的某个元素全部替换为另一个

let str = 'hello';
console.log(str.replaceAll('l','L'));

代码运行结果如下: 

相关推荐

  1. ES6 字符串方法

    2023-12-08 15:38:02       20 阅读
  2. ES6新增基本数据类型----symbol

    2023-12-08 15:38:02       29 阅读
  3. es6一些方法

    2023-12-08 15:38:02       14 阅读
  4. Golang实现类似类与继承方法

    2023-12-08 15:38:02       13 阅读
  5. ES6拓展API

    2023-12-08 15:38:02       34 阅读
  6. ES6Promise

    2023-12-08 15:38:02       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 15:38:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 15:38:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 15:38:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 15:38:02       20 阅读

热门阅读

  1. RPC 集群,gRPC 广播和组播

    2023-12-08 15:38:02       36 阅读
  2. js 如何判断一个数组内的值都为true

    2023-12-08 15:38:02       45 阅读
  3. uniapp 显示文件流图片

    2023-12-08 15:38:02       41 阅读
  4. 学习redis(待完善)

    2023-12-08 15:38:02       33 阅读
  5. 基于MATLAB车辆防碰撞系统仿真

    2023-12-08 15:38:02       32 阅读
  6. 【力扣100】4.移动零

    2023-12-08 15:38:02       40 阅读
  7. ChatGPT的进化史

    2023-12-08 15:38:02       39 阅读
  8. openmmlab加载自训练权重

    2023-12-08 15:38:02       41 阅读
  9. 利用 Python 进行数据分析实验(六)

    2023-12-08 15:38:02       34 阅读
  10. vs2022专业版永久密钥

    2023-12-08 15:38:02       45 阅读