ES6中定义类和对象的方法示例
本文实例讲述了ES6中定义类和对象的方法。分享给大家供大家参考,具体如下:
类的基本定义和生成实例:
//类的基本定义和生成实例
classParent{//定义一个类
constructor(name='xiaxaioxian'){
this.name=name;
}
}
//生成一个实例
letg_parent=newParent();
console.log(g_parent);//{name:"xiaxaioxian"}
letv_parent=newParent('v')//'v'就是构造函数name属性,覆盖构造函数的name属性值
console.log(v_parent);//{name:"v"}
继承
//继承
classParent{//定义一个类
constructor(name='xiaxaioxian'){
this.name=name;
}
}
classChildextendsParent{
}
console.log('继承',newChild())//继承{name:"xiaxaioxian"}
继承传递参数
//继承传递参数
classParent{//定义一个类
constructor(name='xiaxaioxian'){
this.name=name;
}
}
classChildextendsParent{
constructor(name='child'){//子类重写name属性值
super(name);//子类向父类修改super一定放第一行
this.type='preson';
}
}
console.log('继承',newChild('hello'))//带参数覆盖默认值继承{name:"hello",type:"preson"}
ES6重新定义的ES5中的访问器属性
classParent{//定义一个类
constructor(name='xiaxaioxian'){
this.name=name
}
getlongName(){//属性
return'mk'+this.name
}
setlongName(value){
this.name=value
}
}
letv=newParent();
console.log('getter',v.longName)//gettermkxiaxaioxian
v.longName='hello';
console.log('setter',v.longName)//settermkhello
类的静态方法:
classParent{//定义一个类
constructor(name='xiaxaioxian'){
this.name=name
}
statictell(){//静态方法:通过类去调用,而不是实例
console.log('tell')
}
}
Parent.tell();//tell
类的静态属性:
//静态属性
classParent{//定义一个类
constructor(name='xiaxaioxian'){
this.name=name
}
statictell(){//静态方法:通过类去调用,而不是实例
console.log('tell')//tell
}
}
Parent.type='test';//定义静态属性
console.log('静态属性',Parent.type)//静态属性test
letv_parent=newParent();
console.log(v_parent);//{name:"xiaxaioxian"}没有tell方法和type属性
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。