class 类
es6引入一个全新的概念‘类’,传统的方法是通过prototype构造函数的方法去实现,但那样写不利于书写和理解、语法不够清晰。
通过class你就能清晰的理解构造函数。
class User{
constructor(){
this.name='whh';
this.age=18;
}
sayName(){
console.log(`my name is $`);
}
sayAge(){
console.log(`my age is $`);
}
}
let user=new User();
user.sayName(); //my name is whh
user.sayAge(); //my age is 18
~!注意这里的this指向问题,this永远指向类的实例。
Promise
总的来说promise是把所有的异步编程封装了起来,避免的异步编程中复杂回调带来的各种错误,使编程更加轨范、易于操作。
这种方法一般是用来处理,大规模回调嵌套,而应运而生的一种轨范性写法。对代码能保持良好的维护性。
promise提供两个推送器,resolve负责把成功的回调推送出去,reject负责推送错误信息。
promise也有一个接收器then。它也有两个回调函数,一个接收成功数据,一个接收失败数据。
下面是一个异步读取文件的例子:
const fs=require('fs');
function loadFile(url){
return new Promise((resolve,reject)=>{
fs.readFile(url,(err,data)=>{
if(err){
reject(err); //推出错误
}else{
resolve(data.toString()); //推出数据,并转成字符串
}
})
})
}
loadFile('1.txt').then(
(data)=>, //接收数据,文件内容
(err)=> //接收错误数据,如果文件不存在等
)
Module
模块化编程,以前我们习惯于把一个程序写一个文件里面,这样无疑让程序变得庞大无比,多人合作也不好分工,且容易造成全局变量冲突,试想你写了一个全局变量我也写了一个怎么才能知道我们写的不冲突。
module很好的解决了这一问题,它可以让编程结构块状化。面对大型项目能更加从容的应对。
module的思路就是一个出口和入口的设计,每个人只需要关注自己的出口和入口,你写好一段代码就可以把数据输出。如果你要用到别人的数据,你也只需要引入模块。
还是一个读取文件的例子,这次读到的数据,我们需要在另一个文件里直接得到:
//文件 m1.js
const fs=require('fs');
function Data(success){
fs.readFile('1.txt',(err,data)=>{
if(err){
console.log(err);
}else{
success(data);
}
})
}
module.exports=Data; //数据出口
//这里你也可以定义为一个对象,那样你就可以输出多个数据。
//文件 m2.js
const m1=require('./m1');
m1((data)=>);
//这样我们就能得到m1中读取到的值,这里是直接输出了一个带回调的函数。
领取专属 10元无门槛券
私享最新 技术干货