摘要:的时候调用姜姜吴建我会飞去上学姜姜姜姜获取加赋值。值得注意是,这里的不是新的对象继承模型,它只是原型链的语法糖表现形式。允许一个子类继承父类,需要注意的是,子类的函数中需要执行函数。
es6的classes
class Student{ constructor (name,age){ this.name=name; this.age=age; } run(){ return this.name; } } let xs = new Student("姜姜",23); console.log(xs.name); console.log(xs.age); function Vehicle (name,age){ this.name = name; this.age = age; } Vehicle.prototype.name = function name(){ return this.name; }; var jj = new Vehicle ("吴建",24); console.log(jj.name);
class Student{ constructor (name,age){ this.name =name; this.age=age; } run(){ console.log("我会飞"); } get xm(){ return this.name +"123"; } set xm(value){ this.name =value; } static shangxue (){ console.log("去上学"); } } let xs = new Student("姜姜",25); console.log(xs.xm); xs.xm="姜姜"; console.log(xs.xm); Student.shangxue(); //get:获取加赋值。 //set:设置。 //static:静态方法|类方法。 //set和get的方法名相同,而且可以同名
class Student{ constructor (name,age){ this.name =name; this.age=age; } run(){ console.log("我会飞"); } } let xs = new Student("姜姜",25); class Teacher extends Student{ constructor (name,age,sex){ super(name,age); this.sex=sex; } eat(){ console.log(this.name +"is eating") } run(){ super.run(); console.log("我想高飞"); } } var ls = new Teacher("吴建","30","男"); ls.run();//我会飞 我想高飞; 注释:虽然子类继承了父类的run方法,但是子类会把父类的方法给覆盖掉,这个就是方法覆盖
非声明提升(hoisted) 和let一样
自动处于严格模式
需要new, 否则会抛错
重写类名和方法会抛错
有get set 方法
可以指定方法为static 。只能在class内部使用。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/84067.html
摘要:接下来我们看下类的写法,这个就很接近于传统面向对象语言了。如果你想了解传统面向对象语言,这里是一个好切入点。作为对象时,指向父类的原型对象。这些就是为将来在中支持面向对象的类机制而预留的。 在ES5中,我们经常使用方法或者对象去模拟类的使用,并基于原型实现继承,虽然可以实现功能,但是代码并不优雅,很多人还是倾向于用 class 来组织代码,很多类库、框架创造了自己的 API 来实现 c...
摘要:基于原型的面向对象在基于原型的语言中如并不存在这种区别它只有对象不论是构造函数,实例,原型本身都是对象。允许动态地向单个的对象或者整个对象集中添加或移除属性。为了解决以上两个问题,提供了构造函数创建对象的方式。 showImg(https://segmentfault.com/img/remote/1460000013229218); 一. 重新认识面向对象 1. JavaScript...
摘要:基于原型的面向对象在基于原型的语言中如并不存在这种区别它只有对象不论是构造函数,实例,原型本身都是对象。允许动态地向单个的对象或者整个对象集中添加或移除属性。为了解决以上两个问题,提供了构造函数创建对象的方式。 showImg(https://segmentfault.com/img/remote/1460000013229218); 一. 重新认识面向对象 1. JavaScript...
摘要:之前,本质上不能算是一门面向对象的编程语言,因为它对于封装继承多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。所以在中出现了等关键字,解决了面向对象中出现了问题。 ES6之前,javascript本质上不能算是一门面向对象的编程语言,因为它对于封装、继承、多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。但是,它引入了原型(prototype)的概念,可以让我们以...
阅读 2543·2023-04-26 00:56
阅读 2000·2021-10-25 09:46
阅读 1236·2019-10-29 15:13
阅读 811·2019-08-30 15:54
阅读 2190·2019-08-29 17:10
阅读 2611·2019-08-29 15:43
阅读 497·2019-08-29 15:28
阅读 3022·2019-08-29 13:24