es 5 s 6静的方法、クラス、単一の例のモード

7925 ワード

アコースティックjsのクラス、静的方法の継承
/**
 * 
 */
//es5        
//
//    function Person(name,age) {
//        //            
//        this.name=name;
//        this.age=age;
//        this.run=function(){
//            console.log(`${this.name}---${this.age}`)
//        }
//    }
//    //                    
//    Person.prototype.sex=' ';
//    Person.prototype.work=function(){
//        console.log(`${this.name}---${this.age}---${this.sex}`);
//    }
//    //    
//    Person.setName=function(){
//        console.log('    ');
//    }
//    var p=new Person('zhangsan','20');   /*              ,           */
//    p.run();
//    p.work();
//
//    Person.setName();  /*      */
//





//es5  

/*
            

       :               

      :                       ,               
* */

function  Person(name,age) {
    this.name=name;
    this.age=age;
    this.run=function(){
        console.log(this.name+'---'+this.age);
    }
}
Person.prototype.work=function(){
    console.log('work');
}

function Web(name,age){
    Person.call(this,name,age);  /*        */
}

Web.prototype=new Person();
var w=new Web('  ',20);
w.run();
w.work();  //w.work is not a function
es 6のクラス、静的方法の継承
/**
 * 
 */

//  Person 
//
//class Person{
//    constructor(name,age) {   /*      ,        ,new     */
//        this._name=name;
//        this._age=age;
//    }
//    getName(){
//        console.log(this._name);
//
//    }
//    setName(name){
//        this._name=name
//    }
//}
//var p=new Person('  1','20');
//p.getName();
//p.setName('  ');
//p.getName();



//es6     
    //
    //class Person{
    //    constructor(name,age){
    //        this.name=name;
    //        this.age=age;
    //    }
    //    getInfo(){
    //        console.log(`  :${this.name}   :${this.age}`);
    //    }
    //    run(){
    //        console.log('run')
    //    }
    //}
    //class Web extends Person{  //   Person     extends          super(name,age);
    //    constructor(name,age,sex){
    //        super(name,age);   /*                  */
    //        this.sex=sex;
    //    }
    //    print(){
    //
    //        console.log(this.sex);
    //    }
    //}
    //var w=new Web('  ','30',' ');
    //w.getInfo();


//es6       

class Person{

    constructor(name){

        this._name=name;  /*  */
    }
    run(){  /*    */

        console.log(this._name);
    }
    static work(){   /*    */
        console.log('  es6       ');
    }
}
Person.instance='           ';


var p=new  Person('  ');

p.run();
Person.work();   /*es6       */

console.log(Person.instance);
シングルモード
/**
 * 
 */
//                                          
class Db {

    static getInstance(){   /*  */

        if(!Db.instance){

            Db.instance=new Db();
        }
        return Db.instance;
    }

    constructor(){

        console.log('          ');

        this.connect();
    }

    connect(){

        console.log('     ');
    }
    find(){
        console.log('     ');
    }
}

var myDb=Db.getInstance();


var myDb2=Db.getInstance();


var myDb3=Db.getInstance();


var myDb4=Db.getInstance();

myDb3.find();

myDb4.find();