Python中的类和JavaScript中的类(ES6)

JavaScript的类

在ES6 以后的 类的关键字为 class 类里面包含 constructor 构造器 super() 函数用来继承其他类的并且指向为要继承的这个类 static 为定义静态方法,同时也有get 和set 来获取和修改 类里面的变量,里面也有this,可以指向当前类

class getName {
  constructor(name = '自夏', sex = '1', age = 18, meeting = ['JavaScript']) {
    this.sex = sex;
    this.age = age;
    this.meeting = meeting;
  }

  isTypeName (name) {
    console.log(`我是:${name}, is sex ${this.sex},今年多数岁${this.age}`);
  }
  skill (languageSkills) {
    languageSkills = languageSkills || this.meeting;

    console.log(`我会:${languageSkills.join()}`);

  }
  
    static job () {

  }

  get getUserName () {
    return this.name;
  }

  set setUserName (newName) {
    this.name = newName
  }
}

const newInfo = new getName('selfsummer', 2, 22, ['JavaScript', 'NodeJS', 'VUE'])

newInfo.isTypeName('自夏')

newInfo.skill(); //我会:JavaScript,NodeJS,VUE

// 修改name
newInfo.setUserName = '999'

// 获取修改的name
newInfo.getUserName; // 999

Python的类

py 中 class 也是类关键字 他的构造器为 def init 这里跟其他语言有点不一样 定义方法要 def 关键字, Py和JS 中都有静态( 装饰器@staticmethod) 方法,和实例方法(就是不需要装饰器的),但是Py的实例方法不需要实例化也称普通方法(使用时不需要new 关键字 ),但是Py 中还有类方法(修饰器@classmethod)

class Classname:
    @staticmethod
    def fun():
        print('静态方法')

    @classmethod
    def aa(cls):
        print('类方法')

    # 普通方法
    def bb(self):
        print('普通方法')


Classname.fun() # 静态方法和JS的静态方法一样
Classname.aa() # 类的方法,跟使用静态方法差不多
Classname().bb() # 普通方法的调用 跟JS的实例方法差不多,唯一区别这里是不需要实例化
上一篇:day07 多态


下一篇:js对url参数解析,返回一个对象