class语法糖
- class/constructor
- extends/super
class Animal{constructor(name){this.name = name;}jiao(){console.log("动物:"+this.name + "叫")}}class Cat extends Animal{constructor(name,age){super(name)this.age = age}jiao(){console.log("猫:"+this.name + "叫")}cry(){console.log("猫哭了" + this.age)}}let c = new Cat("kitty",12)c.jiao();c.cry();//猫:kitty叫 猫哭了
this
bind—给函数定死一个this,防止js的this乱变
箭头函数:根据所在环境,this恒定
普通函数:根据调用,this老变
箭头函数对this的优先级高于bind
let obj={a : 1}let obj2 = {a : 2}obj.show = function(){return this.a;}console.log(obj.show())console.log(obj.show.bind(obj2)())// 1 2let arr = [1,2,3,4]arr.a = ()=>{console.log(this)}arr.b = function(){console.log(this)}arr.a() //{}arr.b() //[ 1, 2, 3, 4, a: [Function], b: [Function] ]
