es5 和 es6 的静态方法、实例方法【杂记】

// es5
function person() {
  console.log("1:pe1"); //实例化一次就会执行一遍该函数,
  this.run = function () {
    //实例方法,需要实例化后才能通过实例化对象来调用
    console.log("2:run");
    console.log(pe2); //实例化一次就会执行一遍该函数,
    var run1 = "3:i run1";
    return run1;
  };
  var pe2 = "4:i am per2";
  console.log("5");
  console.log("6:" + this.run() + "007");
}
person.name = "jack";
person.swim = function () {
  // 静态方法,直接调用
  console.log("swim");
};

// var p = new person();//这步:执行顺序15246,如果没有6,就没有2、4,变成1、5
// p.run(); //实例方法的调用,执行顺序1524624

// person.swim(); //静态方法的调用
// person();

//--------------------------------

// es6 或 ts 中
// class per{
//     public name: String;
//     public age: Number=20;
//     // 静态方法

//     static sex ="男";
//     constructor(name: string, age: number){
//         this.name = name;
//     }
//     run(){/*实例方法*/
//         // alert(`${this.name}在跑步`)
//         console.log(`${this.name}在跑步`)
//     }
//     work(){
//         // alert(`${this.name}在工作`)
//         console.log(`${this.name}在工作`)
//     }
//     static play(){/*静态方法 里面没法直接调用类里边的属性 */
//         alert("play方法:"+per.sex)
//     }
// }
// // var man = new per("张三")
// // p.run()
// per.play()
// console.log(per.sex)

class ren {
  constructor(props) {
    this.state = {
      count: 0,
    };
  }
  state;
}
// console.log(ren.state)
ren.num = 5;
let p = new ren();
// console.log(p.state.count);
// console.log(ren)

 

posted @ 2021-01-17 22:48  半遮  阅读(249)  评论(0编辑  收藏  举报