ES6中的继承,String类型方法的拓展
2023-12-14 00:41:19
ES6中的继承:
? ? 主要是依赖extends
关键字来实现继承,使用了extends
实现继承不一定要constructor
和super
,因为没有的话会默认产生并调用它们。
? ? 在实现继承时,如果子类中有constructor
函数,必须得在constructor
中调用一下super
函数,因为它就是用来产生实例this
的。
?super
当成函数调用时,代表父类的构造函数,且返回的是子类的实例,也就是此时super
内部的this
指向子类。在子类的constructor
中super()
就相当于是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'));
代码运行结果如下:?
文章来源:https://blog.csdn.net/l12345666777/article/details/134854330
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!