PPT:JSOOP深入理解對(duì)象,定義類和屬性,繼承封裝和多態(tài),搭建自己的框架【詩(shī)書畫唱】
目錄:
JSOOP1-深入理解對(duì)象.ppt
JSOOP2-定義類和屬性.ppt
JSOOP3-繼承封裝和多態(tài).ppt
JSOOP4-搭建一個(gè)自己的框架.ppt

JSOOP1-深入理解對(duì)象.ppt
JSOOP
深入理解對(duì)象
本章目標(biāo)
對(duì)象的屬性類型
數(shù)據(jù)屬性
訪問(wèn)器屬性
JS中的對(duì)象本質(zhì)
對(duì)象的本質(zhì)可以理解為屬性的集合,對(duì)象的屬性包括:??
1、數(shù)據(jù)屬性 : 它包含的是一個(gè)數(shù)據(jù)值的位置,可以對(duì)數(shù)據(jù)值進(jìn)行讀寫
2、訪問(wèn)器屬性 : 這個(gè)屬性不包含數(shù)據(jù)值,包含的是一對(duì)get和set方法,在讀寫訪問(wèn)器屬性時(shí),就是通過(guò)這兩個(gè)方法來(lái)進(jìn)行操作處理的
數(shù)據(jù)屬性
數(shù)據(jù)屬性的四大特性:
1、value:值
2、writable:表示是否可寫,默認(rèn)true,如果為false,則表示當(dāng)前屬性只讀,不能修改。
3、enumerable:表示是否為可枚舉,默認(rèn)true,如果為false,則在for...in中不會(huì)被遍歷。
4、configurable:表示是否為可配置的,默認(rèn)true,如果為false,則不能夠刪除修改,而且不能夠再改回true。
Object對(duì)象的兩個(gè)方法
Object.getOwnPropertyDescriptor(obj,"屬性名"):得到給定obj對(duì)象的指定屬性的特性, 返回值為一個(gè)對(duì)象
Object.defineProperty(obj , 屬性名 ,? { 特性 }):如果Obj對(duì)象中包含指定屬性,則修改現(xiàn)有屬性的值,如果obj中不包含指定屬性,則在obj中自動(dòng)添加新屬性。
注意:屬性在創(chuàng)建對(duì)象時(shí)就定義好了,所有特性的默認(rèn)值都為true,而當(dāng)使用defineProperty添加的屬性,特性的默認(rèn)值都為false。
嚴(yán)格模式
? ?use strict指令表示指定代碼在嚴(yán)格條件下執(zhí)行
嚴(yán)格模式下不可以使用with
嚴(yán)格模式下,變量必須聲明
嚴(yán)格模式下,this默認(rèn)是undefined而不是window
嚴(yán)格模式下,為只讀變量和不可擴(kuò)展對(duì)象賦值會(huì)報(bào)錯(cuò)
嚴(yán)格模式下,函數(shù)的形參不可以同名
嚴(yán)格模式下,不可以使用caller和arguments的屬性,會(huì)報(bào)錯(cuò)
獲取對(duì)象指定屬性的特性
訪問(wèn)器屬性
訪問(wèn)器屬性是專門保護(hù)數(shù)據(jù)屬性的特殊屬性,不實(shí)際存儲(chǔ)數(shù)據(jù)。
訪問(wèn)器分為getter和setter訪問(wèn)器。
1、get方法負(fù)責(zé)讀取變量的值,當(dāng)試圖通過(guò)訪問(wèn)器屬性取值時(shí),會(huì)自動(dòng)調(diào)用get特性的函數(shù)
2、set方法負(fù)責(zé)修改變量的值,當(dāng)試圖通過(guò)訪問(wèn)器屬性設(shè)置值時(shí),會(huì)自動(dòng)調(diào)用set特性的函數(shù)
如果省略set特性,則該屬性為只讀
訪問(wèn)器屬性的四大特性
get : function(){return 局部變量}
set : function(value){局部變量=value}
enumerable:可枚舉,用法同數(shù)據(jù)屬性
configurable:可配置 ,用法同數(shù)據(jù)屬性
總結(jié)
通過(guò)修改屬性的四大特性來(lái)保護(hù)屬性
數(shù)據(jù)屬性可以控制對(duì)象屬性的只讀,遍歷或刪除特性
訪問(wèn)器屬性可以通過(guò)自定義邏輯來(lái)設(shè)置和獲取變量的值。













JSOOP2-定義類和屬性.ppt
JSOOP
定義類和屬性
本章目標(biāo)
定義類和屬性
類
通過(guò)一系列特性、行為對(duì)事物的特征進(jìn)行描述。
在類定義中,通過(guò)屬性(數(shù)據(jù))描述事物的特性,通過(guò)方法(操作)描述事物的行為。
定義私有的屬性
定義受保護(hù)的屬性
公有屬性和方法
原型屬性和方法
類靜態(tài)屬性和方法







JSOOP3-繼承封裝和多態(tài).ppt
JSOOP
繼承、封裝和多態(tài)
本章目標(biāo)
理解JS中的繼承
理解JS中的封裝
理解JS中的多態(tài)
繼承的概念
若多個(gè)事物具有很多相似的特性和行為,可以通過(guò)對(duì)基礎(chǔ)的描述進(jìn)行擴(kuò)充,而不需要重新描述。
派生出的類就像繼承者,它不但獲得被繼承者的所有財(cái)產(chǎn),而且也擁有自己的財(cái)產(chǎn)。
繼承(一)
繼承(二)
封裝的概念
對(duì)事物描述的具體細(xì)節(jié)(隱私)被隱藏起來(lái),而僅僅透露出事物的表面信息。
多態(tài)
事物衍生出來(lái)的,具有相似特性和行為的其它事物,在針對(duì)這些事物進(jìn)行描述時(shí),都具有不同的特征。








JSOOP4-搭建一個(gè)自己的框架.ppt
JSOOP
搭建一個(gè)自己的框架
本章目標(biāo)
用JSOOP的思想搭建一個(gè)JS框架
查看jQuery源代碼
工具網(wǎng)站:http://www.css88.com/tool/jQuerySourceViewer/
外部可以調(diào)用的唯一函數(shù)$
初始化
處理myQuery函數(shù)的返回結(jié)果,當(dāng)調(diào)用myQuery函數(shù)時(shí)依然返回myQuery自己。
Array.prototype.push.apply的用法
實(shí)現(xiàn)選擇器
實(shí)現(xiàn)繼承
添加靜態(tài)方法
實(shí)現(xiàn)foreach方法
實(shí)現(xiàn)css方法









