JS构造函数、普通函数、函数的继承、promise异步处理、箭头函数
转载自:https://blog.csdn.net/weixin_41796631/article/details/82939585
构造函数和普通函数的主要区别:
1.调用方式不一样。作用也不一样(构造函数用来新建实例对象)
2.调用方式不一样。
a. 普通函数的调用方式:直接调用 person();
b.构造函数的调用方式:需要使用new关键字来调用 new Person();
3.构造函数的函数名与类名相同:Person( ) 这个构造函数,Person 既是函数名,也是这个对象的类名
4.构造函数的执行流程
A、立刻在堆内存中创建一个新的对象
B、将新建的对象设置为函数中的this
C、逐个执行函数中的代码
D、将新建的对象作为返回值
5.普通函数因为没有返回值,所以为undefined
6.构造函数例子:构造函数会马上创建一个新对象,并将该新对象作为返回值返回
函数的继承
方法一:JS的继承
Dog.prototype = new Animal(),实现Animal类的继承
方法二:类的继承
extends使Dog类继承自Animal类
异步处理
1.js封装——callback(可读性不高,不符合开放封闭原则,且处理逻辑复杂时容易引发回调地狱)
2.promise.then
then()方法是异步执行。
意思是:就是当.then()前的方法执行完后再执行then()内部的程序,这样就避免了,数据没获取到等的问题。
语法:promise.then(onCompleted, onRejected);参数promise必需。
Promise 对象。
onCompleted必需。承诺成功完成时要运行的履行处理程序函数。
onRejected可选。承诺被拒绝时要运行的错误处理程序函数
ES6箭头函跟普通map写法,在this指向上的区别
arr.map(item=>{ console.log(this) }) //this指向上一级对应的this
arr.map(function(item){ consol.log(this) }) //this指向window 坑点