<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
【三大顯著特徵】: 封裝、繼承、多型
【解釋】: 封裝的本質就是將有關聯的程式碼組合在一起。
【優勢】:
保證程式碼可以複用提高程式碼的維護效率
【以前的封裝方法】:
函數封裝
function fn(){}
名稱空間封裝
let o={ name:'zhangsan', age:20 } let obj={ name:'lisi', age:18 }
【新的封裝方法】:
建構函式
//自定義建構函式 function Person(name,age,height,weight){ this.name=name; this.age=age; this.height=height; this.weight=weight; //方法 this.eat=function(){ console.log('吃飯') } this.sleep=function(){ console.log('睡覺') } } //範例化一個物件 let obj1=new Person('zhangsan',20,'198cm','60kg') console.log(obj1) let obj2=new Person('lisi',24,'168cm','70kg') console.log(obj2)
【總結】:
建構函式體現了物件導向的封裝特性建構函式範例建立的物件彼此獨立、互不影響名稱空間式的封裝無法保證資料的獨立性
【解釋】: 本質是建構函式的一個屬性,prototype
的是物件類據型別,稱為建構函式的原型物件。
【程式碼範例】:
function Person(name,age){ this.name=name this.age=age //this.sing=function (){ //console.log('唱歌') //} } console.log(Person.prototype); Person.prototype.sing=function(){ console.log('唱歌') } let p1=new Person('zhangsan',20); console.log(p1) p1.sing()
【總結】:
【constructor屬性】: 代表了該原型物件對應的建構函式。
【範例】:
function Person(name,age){ this.name=name this.age=age } console.log(Person.prototype,constructor)
【圖解】:
【__proto__屬性】: 用於指向原型物件
【範例】:
function Person(name,age){ this.name=name this,age=age } Person.prototype.eat=function(){ console.log('吃飯') } let person1=new Person('張三',22); console.log(person.__proto__===Person.prototype)
【封裝問題引出】:
// 封裝中國人的行為特徵 function Chinese() { // 中國人的特徵 this.arms = 2; this.legs = 2; this.eyes = 2; this.skin = 'yellow'; this.language = '中文'; // 中國人的行為 this.walk = function () {} this.sing = function () {} this.sleep = function () {} } // 封裝日本人的行為特徵 function Japanese() { // 日本人的特徵 this.arms = 2; this.legs = 2; this.eyes = 2; this.skin = 'yellow'; this.language = '日文'; // 日本人的行為 this.walk = function () {} this.sing = function () {} this.sleep = function () {} }
【總結】:其實我們都知道無論是中國人、日本人還是其它民族,人們的大部分特徵是一致的,然而體現在程式碼中時人的相同的行為特徵被重複編寫了多次,程式碼顯得十分冗餘,我們可以將重複的程式碼抽離出來
【程式碼改寫】:
<script> // 所有人 function Person() { // 人的特徵 this.arms = 2; this.legs = 2; this.eyes = 2; // 人的行為 this.walk = function () {} this.sing = function () {} this.sleep = function () {} } // 封裝中國人的行為特徵 function Chinese() { // 中國人的特徵 this.skin = 'yellow'; this.language = '中文'; } // 封裝日本人的行為特徵 function Japanese() { // 日本人的特徵 this.skin = 'yellow'; this.language = '日文'; } // human 是建構函式 Person 的範例 let human = new Person(); // 中國人 Chinese.prototype = new Person(); Chinese.prototype.constructor = Chinese; // 日本人 Japanese.prototype = human; Japanese.prototype.constructor = Japanese;
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45