JS类的继承

目录

JS类

写类

继承

get/set

Static

方法static修饰

属性static修饰(特殊)


JS类

写类

{
			class Parent{
				constructor(name="jini"){
					this.name=name;
				}
			}

			var v_parent=new Parent();
			console.log(v_parent);
		}

继承

就以上面的Parent类为父类,写一个Studnet继承他

{
			class Parent{
				constructor(name="jini"){
					this.name=name;
				}
			}

			class Student extends Parent{
				constructor(name,age){
					super(name);
					this.age=age;
				}
			}
			var st = new Student("jjj",22);

			console.log(st);
			//{name: "jjj", age: 22}
		}

使用extends以后会继承父类的所有的属性

get/set

{
			class Parent{
				constructor(name="jini"){
					this.name=name;
				}
				get aname(){
					return this.name;
				}
				set aname(value){
					this.name=value;
				}
			}

			var pp = new Parent();
			pp.aname="jinjinjinjkin";
			console.log(pp.aname);
			//jinjinjinjkin
			//给了参数调用set方法,不给参数调用的就是个get方法
			//set和get必须同名但是不能跟参数名字相同
		}


            //给了参数调用set方法,不给参数调用的就是个get方法
            //set和get必须同名但是不能跟参数名字相同

Static

方法static修饰

被static修饰的方法可以直接用类名调用,不用实例化类对象

{
			class Parent{
				constructor(name,age){
					this.name=name;
					this.age=age;
				}
				static tell(){
					console.log(123);
				}
			}
			//被static修饰的方法可以直接用类名调用,不用实例化类对象
			Parent.tell();
			//123
		}

属性static修饰(特殊)

{
			class Parent{
				constructor(name,age){
					this.name=name;
					this.age=age;
				}
			}
			Parent.sex="男";

			console.log(Parent.sex);
			let pp = new Parent("JIN",22);
			console.log(pp.sex);//undefined
			静态属性不能被实例对象调用,即通过以new 
操作符实例化后的对象调用,如上例中的obj调用,只能通过类名调用,即Obj调用
		}

Parent.sex="";这就是给这个类定义了一个static属性,该属性不能被实例化以后的对象调用,只能用类名调用,并且,所有的操作修改的是同一个属性参数,该参数在最开始的时候被加载

猜你喜欢

转载自blog.csdn.net/jinqianwang/article/details/82558691