在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
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的实例方法差不多,唯一区别这里是不需要实例化