课程名称:再学JavaScript ES(6-10)全版本语法大全
课程章节:2-15 Static Methods(如何操作方法?)
课程讲师:快乐动起来呀
课程内容:
实例对象的方法和类的静态方法(挂在类上的)
类的静态方法:通过对象实例去访问是访问不到的,只能通过类来访问
ES5做法(实例对象):prototype上定义的方法或者是在构造函数定义的方法都是实例对象的方法
eat方法就是实例对象的方法
Animal.prototype.eat=function(){
Animal.walk() //调用类静态方法
console.log('i am eat food')
}
ES5做法(类静态方法):
Animal.walk=function(){
console.log('i am walking')
}
let dog = new Animal('dog');
dog.eat()//调用实例对象的方法
dog.walk(). //dog.walk is not a function
ES6
在类花括号里定义的方法 如果没有static关键字,那都是实例对象的方法;有static 定义的方法那就是类静态方法
static walk(){
console.log('i am walking')
}
Animal.walk() //调用类静态方法
实例对象的方法 VS 类的静态方法:只属于类的,不属于实例对象的
ES5做法:
对象的实例方法:在构造函数和原型对象上的方法都是对象的实例方法,是通过对象.方法名可以访问的
静态方法:
Anaimal.walk=function(){console.log(‘i am walking’)} 定义
Animal.walk() 调用
ES6做法:
实例对象的方法:只要在类这个花括号里定义的方法都是实例对象的方法,通过对象.方法名可以访问的
静态方法:
static walk(){console.log(‘i am walking’)} 定义
Animal.walk() 调用
课程收获:
方法依赖于实例对象的某些方法或属性,就必须定义为类的实例对象方法;
方法内不会涉及到实例对象的属性和方法,那就定义成类的静态方法