HuangHongRui / Notebook

:pencil2: Yeah.. This's My NoteBook...:closed_book:
0 stars 0 forks source link

Es6_Javascript中的类 [一等公民] #22

Open HuangHongRui opened 7 years ago

HuangHongRui commented 7 years ago

程序中, 一等公民( 头等函数 )指的是 : 可传入函数 , 可从函数返回 , 可赋值给变量.

Es6 将 也设计为一等公民.. 允许通过多种方式使用类的特性. [ 例如: 将类作为参数传入函数中. ]

HuangHongRui commented 7 years ago
function createObj(arg) {
  return new arg()
}
let doit = createObj( class {  //传入 类
  sayHi() {
    console.log('Hi')
  }
})
doit.sayHi()  // Hi

传入一个匿名类表达式作为参数..然后通过关键字 new 实例化这个类并返回实例. 将其存储于变量obj中

另一种方式.

let person = new class {
  constructor (name) {
    this.name = name
  }
  sayname () {
    console.log( this.name )
  }
}('Raine')
person.sayname() // `Raine`

创建一匿名类表达式, 然后立即执行.. 依照此模式可私用类语法创建单例..且不会在作用域中暴露类的引用..其后小括号表明正在调用一个函数, 且可传参于此函数