介绍
这篇文章主要介绍es6中类的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强>类类强>
基本概念,记录以便自己后面加深理解
<>强了解类是什么强>
类是什么?不妨写一个看看
class Demo { ,,,构造函数(),{ ,,,,,,,this.a =, 1; ,,,,,,,this.b =, this.f; ,,,} ,,,f (), { ,,,,,,,return ; ,,,} } Demo.prototype;,//{ ,,,,,,,,,,,,,,,//,,构造函数:class 演示 ,,,,,,,,,,,,,,,//,,,?,f (),,,,,,,,,,, ,,,,,,,,,,,,,,,//,,__proto__:, Object }
演示的原型可以看到这三个属性都是不可遍历的并且与演示类相比就多了一个__proto__原型链。我们再新的一个演示看一下
let o =, new 演示(); console.log (Object.getPrototypeOf (o));,,//{ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,//,,构造函数:class 演示 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,//,,,?,f (),,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,//,,__proto__:, Object }
实际上演示类相当于演示实例的原型
类中构造函数的
在我看来
,,,,构造函数(),{ ,,,,,,,this.a =, 1; ,,,,,,,this.b =, this.f; ,,,}
这部分相当于es5中构造函数的作用,在新的的过程中对这个进行赋值,并返回这也就成了实例对象
因此你在构造函数中返回了一个对象且不等于零那么实例对象就是返回的值,和es5构造函数一样的效果类中
的方法
,,,,f (), { ,,,,,,,return ; ,,,}
这个方法最终属于在实例对象的原型链上<强>不可遍历方法>强劲,因此也能被实例对象使用
新知识点
类的静态方法
表示该方法不会被实例继承,而是直接通过类来调用
class Demo { ,,,构造函数(),{ ,,,,,,,this.a =,; ,,,,,,,this.b =, this.f; ,,,} ,,,static g (), { ,,,,,,,return ; ,,,} ,,,static f (), { ,,,,,,,return ; ,,,} } let o =, new 演示(),,//console.log (o.b ());,,,,//not a 函数//console.log (o.g ());,,,,,//not a 函数 Demo.g(),===,演示,,,,,,,,,//真正的
静态方法中这指的向类自己,而<代码>。=这> 代码则指向实例对象自己
静态方法可以被子类继承
class Foo { static 才能;classMethod (), { ,,,return & # 39;你好# 39;; ,,} } class Bar  extends Foo  { } Bar.classMethod(),//, & # 39;你好# 39;
静态方法可以从超级对象上调用
class Foo { static 才能;classMethod (), { ,,,return & # 39;你好# 39;; ,,} } class Bar  extends Foo  { static 才能;classMethod (), { ,,,return super.classMethod(), +, & # 39;,也# 39;; ,,} } Bar.classMethod(),//,,你好,,too"
类内部只有静态方法,没有静态属性
类表达式的立即执行写法
var o =,, new class { ,,,构造函数(n), { ,,,,,,,this.a =, n; ,,,,,,,this.b =, this.f; ,,,} ,,,g (), { null null null null null null null null null null null null null null null null null null null null null null null null null null null nulles6中类的示例