1、定义一个class类

  1. <script>
  2. class Student{
  3. /* 构造函数
  4. 1、概念:构造一个对象的函数
  5. 2、什么时候调用:new关键实例化一个对象的时候就调用
  6. 3、在constructor中,this指向实例化对象
  7. */
  8. constructor(name,age){
  9. this.name = name;
  10. this.age = age;
  11. }
  12. sayName(){
  13. /* 普通方法中this指向实例化对象 */
  14. console.log(this.name);
  15. }
  16. }
  17. var s = new Student("cheng",19);
  18. s.sayName();
  19. </script>

2、class类的静态属性

  1. <!-- 静态属性 -->
  2. <script>
  3. /*
  4. 1、使用static关键字修饰的变量,叫静态属性。只能通过类名自己来调用
  5. 2、使用static修饰的方法,叫静态方法
  6. */
  7. class Http{
  8. static baseUrl = `http://www/yuque.com`;
  9. }
  10. var h = new Http();
  11. console.log(Http.baseUrl);
  12. console.log(h.baseUrl);
  13. </script>

3、class类的静态方法

  1. <!-- 静态方法 -->
  2. <script>
  3. /*
  4. 1、使用static关键字修饰的方法,叫静态方法
  5. a、通过类名去调用
  6. b、静态方法中的this指向class类
  7. */
  8. class Http{
  9. static baseUrl = "http://www.yuque.com"
  10. static request(){
  11. console.log(this);
  12. console.log("request");
  13. }
  14. }
  15. var p =new Http();
  16. Http.request()
  17. p.request();
  18. </script>

4、静态方法和普通方法不能直接调用

  1. <!--
  2. 1、静态方法中不能直接使用普通方法
  3. 2、普通方法也不能直接使用静态方法
  4. -->
  5. <script>
  6. class Http{
  7. static request(){
  8. console.log("request");
  9. sayName()
  10. }
  11. sayName(){
  12. request();
  13. console.log("sayName");
  14. }
  15. }
  16. // Http.request();
  17. var p = new Http();
  18. p.sayName();
  19. </script>

5、静态方法之间的调用

  1. <script>
  2. /* 静态方法之间的相互调用,在一个静态方法调用另一个静态方法,方法前面必须加上this关键字 */
  3. class Http{
  4. static request(){
  5. console.log("request");
  6. }
  7. static sayName(){
  8. this.request();
  9. console.log("sayName");
  10. }
  11. }
  12. Http.sayName();
  13. </script>

6、普通方法调用静态方法

  1. <!--
  2. 1、静态方法中不能直接使用普通方法
  3. 2、普通方法也不能直接使用静态方法
  4. -->
  5. <script>
  6. class Http{
  7. static request(){
  8. console.log("request");
  9. }
  10. sayName(){
  11. /* 普通方法调用静态方法,可以在静态方法前面加上类名,利用类名调用静态方法 */
  12. Http.request();
  13. console.log("sayName");
  14. }
  15. }
  16. var h = new Http();
  17. h.sayName();
  18. </script>

7、静态方法中调用普通方法

  1. <!-- 静态方法中调用普通方法 -->
  2. <script>
  3. class Http{
  4. static request(){
  5. new Http().sayName()
  6. console.log("request");
  7. }
  8. sayName(){
  9. console.log("sayName");
  10. }
  11. }
  12. Http.request()
  13. </script>