// 任何一个类 ,它的内部都是以 constructor 方法开始的
class Parent{
constructor(name="wukong",weapon){
this.name=name
this.weapon = weapon
}
getName(){ // get方法,获取实例对象中的属性(不定义也可以,定义只是为了对获得的数据做修改)
console.log(this.name)
}
setName(value){ // set方法,设置或修改实例对象中的属性(不定义也可以,定义只是为了对要设置的数据做修改)
this.name = value
}
static tell(){ // 定义静态方法时,使用static 关键字
console.log('tell')
}
}
Parent.story = '西游记'; //定义静态属性,静态属性没有关键字,所以在定义了类之后,直接添加
Parent.tell(); //调用静态方法的时候,是在 类 上调用,而不是在 实例 上调用
console.log(Parent.story); // 查看静态属性,同样也是在 类 上查看
var obj = new Parent('sunwk','jingubang!')
console.log(obj); // {name: "sunwk", weapon: "jingubang!"}
obj.getName(); // sunwk
obj.setName('tangsanzang')
console.log(obj); //{name: "tangsanzang", weapon: "jingubang!"}
class Child extends Parent{
constructor(name="bajie",weapon ){ // 指定了这个方法传入的参数,以及它的默认值
super(name) // 使用super()的时候,就相当于调用了父类中的constructor
// 并将子类中的name传入,覆盖父类中的name
this.weapon = "dingpa!" // 如果子类中需要添加新的属性,必须在 super() 之后写
}
}
var obj1 = new Child();
console.log(obj1) // {name: "bajie", weapon: "dingpa!"}
class 类
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 一、Math类 Math类中提供了一系列基本数学运算和几何运算的方法; 该类的构造方法被修饰为private,因此...