类的静态方法

//es5

let Animal = function (type){
   this.type = type
}
//这是类的实例对象方法
Animal.prototype.eat = function (){
   Animal.walk()//引用类的静态方法
console.log('eat food') } 

//这是类的静态方法
Animal.walk = function () {
console.log(
'walking')
}
let dog
= new Animal('dog')
dog.eat()
dog.walk()
//类的实例对象里没有walk这个方法

//es6

class Animal {
   constructor (type) {
      this.type = type
   }
   //类的实例对象方法
   eat (){
      Animal.walk()
      console.log('eat food')
   }
   //类的静态方法
   static walk (){
      console.log('walking...')
   }
}
let dog = new Animal('dog')
dog.eat()

根据场景选择定义不同的方法

类的静态方法:拿不到类的实例对象的信息

类的实例对象方法:可以访问实例对象的属性或方法

猜你喜欢

转载自www.cnblogs.com/qjb2404/p/12205113.html