第二十五天易忘知识点-ES6

day25

ES5继承

1.经典继承
function Animal(type,age,weight,length){
    this.type=type;
    this.age=age;
    this.weight=weight;
    this.length=length
}
Animal.prototype={
    constructor:Animal,
    sayType:function(){
        console.log(this.type)
    }
}

function Dog(type,age,weight,length,name,color){
        // 经典继承又称为构造函数继承
        Animal.call(this,type,age,weight,length);
        this.name=name;
        this.color=color;
}
处理完构造函数处理原型对象
2.//原型链继承
Dog.prototype=new Animal();
Dog.prototype.constructor=Dog;
Dog.prototype.sayColor=function(){
    console.log(this.color)
}
var d1=new Dog('狗',1,'10kg','40cm','可乐','白色');
console.log(d1);
d1.sayType();
d1.sayColor();

ES6继承

class Animal{
    // 静态属性
    static animalAttr='Animal的静态属性';
    constructor(name,age,weight){
        this.name=name;
        this.age=age;
        this.weight=weight;
    }
    // 实例方法
    sayName(){
        console.log('实例方法')
    }

    // 静态方法
    static animalmethod(){
        console.log('Animal静态方法')
    }
}
// 要实现继承
class Dog extends Animal{
    constructor(name,age,weight,color){
        super(name,age,weight);
        this.color=color;
        console.log('Dog的构造器')
    }
}
let dog=new Dog('豆豆',1,10,'golden');
// 继承 子类的原型对象继承父类的原型对象
dog.sayName();
// 继承 子类的对象通过__proto__指针指向父类的对象
Dog.animalmethod();
console.log(Dog.animalAttr);
console.log(Dog.__proto__===Animal);
console.log(Dog.prototype.__proto__===Animal.prototype)

Symbol

表示一个独一无二的值
symbol全局注册:

let a = Symbol.for('张三');
let b = Symbol.for('张三');
console.log(a === b);//true
/**
*使用Symbol.for全局注册时会先查找是否包含该symbol,包含则返*回,否则进行全局注册
*/
/**
*使用Symbol.keyFor()可以获取symbol值的描述
*/
console.log(Symbol.keyFor(a))//'张三'

模板字面量

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

let id = 1;
let url = `121.199.0.35:8888/findById?id=${id}`;
点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注