class Arrows{ //es6里面的类可以看做是js构造函数的另一个种写法 类的数据类型就是函数,类本身就指向构造函数。
constructor(){
this.s1=0;
this.s2=0;
}
f(){
console.log('sss')
}
ss(){
}
}
Arrows.prototype.k=k=>k; //以k为入参并返回k
Arrows.prototype.f=()=>5; //等同于 Arrows.prototype.f=()=>{return 5}
Arrows.prototype.sum=(num1=1,num2=2)=>num1+num2; //如果num1及num2未传值 则分别默认为1,2
Arrows.prototype.add=({x,y}={x:5,y:5})=>{return {x,y}}; //默认赋值与变量解耦结合
Arrows.prototype.add1=({x=5,y=5}={})=>{return x+'=='+y} //结构与赋值结合 若整个对象参数为未传值则默认为空对象 若参数对象里的参数未传值则默认为5
Arrows.prototype.fn=()=>void doesNotReturn(); //不需要返回值
Arrows.prototype.full = ({ first, last }) => first + ' ' + last;//等同于下面一个es5函数
Arrows.prototype.fullCopy=function(person){ return person.first + ' ' + person.last;} //与上一个函数相同作用
Arrows.prototype.Timer=function(){
setInterval(()=>{this.s1++;console.log(this)},1000); //箭头函数this为定义函数的实例 此this为Arrows {s1: 2, s2: 0}
setInterval(function(){
console.log(this); //this为window对象
this.s2++; //普通函数的this执行window this.s2=undefined
},1000);
}
export default Arrows;