一 promise

const promise = new Promise((resolve, reject) => {
  console.log(1)
  resolve()
  console.log(2)
})
promise.then(() => {
  console.log(3)
})
console.log(4)

1.两个回调函数

(1).new Promise()里面的回调是同步,立即执行
(2).then和catch里面的回调,是异步的,需要resolve和reject执行了,才会执行

2.resolve和reject

resolve是将pending状态(promise的起始状态)--->resolved状态
reject是将pending状态(promise的起始状态)--->rejected状态
状态转化只能是上面两个,而且一旦转化就不能变了

二 扩展符 ... ---主要用来赋值---就是浅克隆

obj={}
obj1={a:11,b:22,c:3}
obj={...obj1}
obj.a=1
console.log(obj,obj1)
//{a: 1, b: 22, c: 3} {a: 11, b: 22, c: 3}

//注意只能浅克隆
obj={}
obj1={a:{a:1},b:22,c:3}
obj={...obj1}
obj.a.a=222222
console.log(obj,obj1)
//obj:{a: {…}, b: 22, c: 3}
a: {a: 222222}
b: 22
c: 3
//obj1
{a: {…}, b: 22, c: 3}
a: {a: 222222}
b: 22
c: 3

三 class 类 (ps:统一把构造函数叫类)

(一)三个重要的属性 _proto_ constructor prototype

1所有的对象都独有__proto__和constructor属性
2所有的函数都独有prototype属性

(二)_proto_ ---往上指

1.所有类的__proto__都指向父类,直到Object类

//所有类相当于默认继承Object类
//因为A.prototype.__proto__==Object.prototype
class A extends Object{}
class B extends Object{}
console.log(B.__proto__)//A

2.所有prototype.__proto__都指向父类的prototype

class A extends Object{}
class B extends A{}
console.log(B.prototype.__proto__==A.prototype)//true

3.所有的对象(指由类new出来的--普通对象)的__proto__指向类的prototype

class A extends Object{}
class B extends A{}
let b=new B()
console.log(b.__proto__==B.prototype)

(三) prototype---类的属性用来存用于原型链的属性

(四) constructor

class.prototype.constructor==class
obj.constructor==class

(五) super

1.作为函数时,在子类的constructor内调用
2.作为对象时,指向父类的prototype

(六)类可以有两个途径从外界获取参数

(1) extends 注意:子类写consturtor时候,里面必须要调用super()
(2) constructor(形参){} new ClassName(实参)

四 原型链

1.作用处于链底层的对象可以一直往上找属性

链条:b--b.__proto__-->B.prototype--B.prototype.__proto__-->A.prototype
所以只要一个对象的__proto__指向另个一个对象的prototype,那么这个对象就在原型链上
b B.prototype A.prototype 都在一条原型链上

class A{}
class B extends A{}
A.prototype.aa=11
console.log(B.prototype.aa)//11

class A{}
class B extends A{}
A.prototype.aa=11
console.log(new B().aa)//11
//因为b.__proto__==B.prototype

五 export

1.export右边的函数可以执行

export let obj=function(){
  console.log('value')
  return {a:1}
}()

努力求学的人
108 声望2 粉丝