ES 6のクラス、classの説明
9240 ワード
クラスとオブジェクト // class
class Star {
constructor(uname, age) { //constructor this
this.uname = uname;
this.age = age;
}
sing(song){
console.log(this.uname + song)
}
}
// new
var ldh = new Star(' ', 18);
var zxy = new Star(' ', 20);
console.log(ldh.uname,ldh.age) // 18
console.log(zxy.uname, zxy.age) // 20
ldh.sing(' ') //
(1)classキーワードでクラスを作成する.クラス名はアルファベット大文字(2)クラスにconstructor関数があり,渡されたパラメータを受け入れるとともにインスタンスオブジェクト(3)constructor関数を返す.newがインスタンスを生成すると自動的にこの関数を呼び出す.この関数を書かないと,クラスは自動的にこの関数を生成します(4)インスタンスを生成しますnewは省略できません(5)最後に文法規範に注意して、クラス名の後ろに括弧をつけないでくださいを作成して、インスタンスクラス名の後ろに括弧をつけて、構造関数はfunctionを加える必要はありません
クラスの継承 class Father {
constructor() {}
money() { console.log(100)}
}
class Son extends Father {
}
var son = new Son ()
son.money() // money 100
class Father {
constructor(x, y) {
this.x = x;
this.y = y;
}
money() {
console.log(this.x + this.y)
}
say() {
return " "
}
}
class Son extends Father {
constructor(x, y) {
super(x, y) //
}
say(){
console.log(super.say() + 'de ') //
}
}
var son = new Son (2, 4)
son.money() //6
son.say() // de
/*
money() this
super() money()
*/
オブジェクトの親クラスの関数にアクセスおよび呼び出すには、superキーワードを使用します.親クラスのコンストラクション関数を呼び出すか、親クラスの一般関数 を呼び出すか、ある場合は先に実行する.継承では、子クラスに含まれていない場合は、親クラスにこのメソッドがあるかどうかを検索し、ある場合は親クラスのこのメソッドを実行します(近接原則)
// class
class Star {
constructor(uname, age) { //constructor this
this.uname = uname;
this.age = age;
}
sing(song){
console.log(this.uname + song)
}
}
// new
var ldh = new Star(' ', 18);
var zxy = new Star(' ', 20);
console.log(ldh.uname,ldh.age) // 18
console.log(zxy.uname, zxy.age) // 20
ldh.sing(' ') //
class Father {
constructor() {}
money() { console.log(100)}
}
class Son extends Father {
}
var son = new Son ()
son.money() // money 100
class Father {
constructor(x, y) {
this.x = x;
this.y = y;
}
money() {
console.log(this.x + this.y)
}
say() {
return " "
}
}
class Son extends Father {
constructor(x, y) {
super(x, y) //
}
say(){
console.log(super.say() + 'de ') //
}
}
var son = new Son (2, 4)
son.money() //6
son.say() // de
/*
money() this
super() money()
*/
オブジェクトの親クラスの関数にアクセスおよび呼び出すには、superキーワードを使用します.親クラスのコンストラクション関数を呼び出すか、親クラスの一般関数 を呼び出すか、ある場合は先に実行する.継承では、子クラスに含まれていない場合は、親クラスにこのメソッドがあるかどうかを検索し、ある場合は親クラスのこのメソッドを実行します(近接原則)