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