嗨~各位好久不见,
最近几乎都在写一些自己喜欢的专案,
不知不觉已经两周了呢 (欢乐的时光总是过得那麽快),
今天要来继续学习啦~
如果你也跟我一样在大学时期物件导向课程都在唱歌睡觉的,你值得与我一起恶补学习 xDD
其实类别就是个像是一种分类
的抽象的设计模式
,
将任何给定的结构想成更通用的基础定义的一个变体。
以交通工具来说,交通工具百百种,
有些会推进,有些会飞又或是可以载人,
假使一个交通工具我就给它定义他可以飞的功能,或是他可以推进,那一百种交通工具就必须每次都重新再次定义他会飞或是他可不可以可推进。
听起来就很不合理!对吧?
那我们该怎麽做?
例如一台车子就可以先定义更通用的类别叫做载具(Vehicle)
,
而载具里面定义了各种不同类型的功能,比方说上面所说的载人、推进、飞天,
当我们想要定义其他载具,比方说火车,我们就可以透过继承
或是扩充
,就可以达到我们要的。
是不是听起来比一开始的方法聪明多了!?
除此之外,类别还有一个概念是多型,
就是他可以藉由来自父类别的某项通用行为在一个子类别中被覆写,并且赋予他更特殊的行为。
讲这麽多, Javascript 具备一些很像类别的语法元素,例如 new 或是 instanceof ,甚至是 ES6 新加入的 class
关键字,所以 Javascript 实际上还是具备了类别这东西嘛!
...
...
其实没有 xD
不是啊!类别如果是种设计模式,那还有什麽问题!?
问题在於,对於 JS 来说类别只是一个选择性的模式,他不像是 Java 一样直接硬着来你根本没有选择的余地,可以说在 JS 中使用你伪造出来的类别和其他语言是不同的,至於为什麽...?
让我们继续看下去~ (书上说的 xD)
建构器是类别的实体是由该类别的一种特殊方法所建构的,通常会与他的类别同名。
直接看个范例。
class Player{
specialTrick = nothing
Player(trick){
specialTrick = trick
}
showTime(){
console.log(`My killer moves is ${specialTrick}`)
}
}
假使要制作一个球员的实体,我们就可以这样做。
Iverson = new Player('killer crossover');
Iverson.showTime(); // 'My killer moves is killer crossover'
所以看起来就是 Player
类别有一个 Player()
建构器,他就是我们使用 new Player()
时所呼叫的东东,而当我们加上 new
的同时让语言引擎知道你想要建立一个新的类别实体。
以上是今天的内容
啊~~ 最近忙着租屋和工作的事,
下篇继续说 xD
感谢您的收看
我们下集见
到底谁说铁人赛完之後会感觉很闲 xDD
>>: Week35 - 轻松加解密repositories或slack上的档案
舒安表示:影片开始前几秒的那张投影片纯属失误(放错张...),第11天就开始精神恍惚了 0.0 ...
Toast 讯息显示後会於数秒内消失,是最常用的提示讯息,使用makeText()产生 Toast....
前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...
前面讲了在AWS上的资安五大面向以及相关的服务简介、操作,今天我们来看看隐藏的第六面向:AWS 合规...
今日练习档 ԅ( ¯་། ¯ԅ) 大家好,今天要来介绍Excel中的排序,排序对於Excel来说可是...