1、面向对象(基础)
①class关键字、构造器和类分开了
②class里面直接加方法
传统的面向对象老版本是这样的:
function User(name,pass){
this.name = name;
this.pass = pass
}
User.prototype.showName = function(){
alert(this.name)
}
User.prototype.showPass = function(){
alert(this.pass)
}
var u1=new User('blue','123456')
u1.showName();
u1.showPass();
问题:
1.在原来的JavaScript里面,是不是类和构造函数是一个东西。User是不是构造函数?是,User是构造函数,User是不是类,也是,也是类,这就很奇怪。
2.类散开了。
新版本写法:
class User{
//构造器
constructor(name){
this.name=name;
this.pass=pass;
}
showName(){
alert(this.name);
}
showPass(){
alert(this.pass);
}
}
继承:
老版本继承:
function VipUser(name,pass,leavel){
User.call(this,name,pass);
this.level=level;
}
VipUser.prototype=new User();
VipUser.prototype.constructor=VipUser;
VipUser.prototype.showLeavel=function(){
alert(this.level)
}
var v1=new VipUser('tom','123456',3)
v1.showName()
v1.showPass();
v1.showLeavel();
新版本继承:
class VipUser extends User{
constructor(name,pass,level){
// 超类/父类
super(name,pass);
this.level=level;
}
showLevel(){
alert(this.level)
}
}
2、Promise
解决回调地狱,用同步一样的方式,来书写异步代码。
Promise.all([$.ajax(),$.ajax()]).then(result=>{
//对了
},err=>{
//错了
})
Promise.race 竞速
假设:
以下的请求代表同时发出多个请求,哪个先获得数据就用哪个。
Promise.race([
$.ajax({url:'http://a2.taobao.com/data/users'}),
$.ajax({url:'http://a5.taobao.com/data/users'}),
$.ajax({url:'http://a3.taobao.com/data/users'}),
])
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。