HTML 學習筆記 May 12,2017 JS 物件導向三大特徵(封裝、繼承、多型)、多型經典案例、補講閉包細節、js內部類、js系統函式、js事件驅動機制、js事件分類、js訪問css技術...
HTML 學習筆記 May 12,2017 JS 物件導向三大特徵(封裝、繼承、多型)、多型經典案例、補講閉包細節、js內部類、js系統函式、js事件驅動機制、js事件分類、js訪問css技術
js 物件導向程式設計的三大特性,
① 封裝
通過prototype 給所有的物件和方法,但是這種方式,不能訪問類的私有變數和方法。
② 繼承
解決程式碼冗餘問題
function Stu (name,age) {
this.name = name;
this.age = age;
this.show = function() {
window.alert(this.name + " " + this.age);
}
}
function MidStu (name,age) {
this.stu = Stu;
this.stu(name,age); // js 中實際上是通過物件冒充,來實現繼承,這句話不能少
}
function Pupil (name,age) {
this.stu = Stu;
this.stu(name,age);
}
var midStu = new MidStu("doudou",20);
midStu.show();
現在來看一個多型的栗子?
function Master () {
// 給動物餵食
this.feed = function (animal,food) {
document.write("主人給" + animal.name + "喂" + food.name);
}
}
// 寫食物
function Food(name) {
this.name = name;
// ...
}
// 魚
function Fish(name) {
this.food = Food;
this.food(name);
}
// 骨頭
function Bone(name) {
this.food = Food;
this.food(name);
}
// 動物
function Animal(name) {
this.name = name;
// ...
}
// 貓
function Cat(name) {
this.animal = Animal; // 物件冒充
this.animal(name);
}
// 狗
function Dog(name) {
this.animal = Animal;
this.animal(name);
}
var cat = new Cat("小貓咪");
var dog = new Dog("小狗");
var fish = new Fish("小魚");
var bone = new Bone("骨頭");
var master = new Master();
master.feed(cat,fish); // 主人給小貓咪喂小魚
master.feed(dog,bone); // 主人給小狗喂骨頭
閉包
// 閉包
function A() {
var i = 0;
function b() {
window.alert(i++);
}
return b;
}
// 閉包<--->gc 是個垃圾回收機制相關聯的一個概念
A(); // 呼叫完之後 i 會被回收
A(); //
var c = A(); // 呼叫完之後 i 不會被回收
c(); // 0
c(); // 1
① 閉包和 gc(垃圾回收機制) 是相關聯的
② 閉包實際上是涉及到一個物件的屬性,何時被 gc 處理問題
③ 怎樣才能對物件的屬性形成一個閉包
內部類的分類:
從使用的方式看:分為靜態類和動態類。
靜態類的使用:類名.屬性/方法
動態類:var 物件 = new 動態類()物件 屬性/方法
Math 類
① abs(x) 返回數的絕對值
② ceil(x) 對一個數進行上舍入
③ floor(x) 對一個數進行下舍入
④ max(x,y) 求 x,y 中較大的數
⑤ min(x,y) 求 x,y 中較小的數
⑥ round(x) 對 x 進行四捨五入
⑦ random() 一個大於0 小於1 的16位小數位的數字
var date = new Date();
window.alert(new Date()); // Fri May 12 2017 15:06:45 GMT+0800 (CST)
window.alert(new Date().toLocaleString()); // 5/12/2017, 3:07:50 PM
window.alert(date);
window.alert(date.getYear() + " " + date.getMonth()); // 117 04 //這個時間有點奇怪,不知道是哪裡出問題了
Date類
**********這裡是擷取字串*********
var str = "abcd12345";
window.alert(str.length);
var str2 = "abc def oop";
var arr = str2.split(" "); // 如果("")就是一個一個分
window.alert(arr);
var str3 = "abcdef";
window.alert(str3.substr(1,3)); // bcd 從座標 1 開始 擷取 3 個數
window.alert(str3.substring(1,3)); // bc 從座標 1 到 3
String 類
var str = "abcd12345";
window.alert(str.length);
var str2 = "abc def oop";
var arr = str2.split(" "); // 如果("")就是一個一個分
window.alert(arr);
var str3 = "abcdef";
window.alert(str3.substr(1,3)); // bcd 從座標 1 開始 擷取 3 個數
window.alert(str3.substring(1,3)); // bc 從座標 1 到 3
var str4 = "abcd";
window.alert("chart" + str4.charAt(3)); // chartd
var str5 = "ab 123 56 ab";
window.alert("indexof" + str5.indexOf("ab",1)); // indexof10
Array 類
var myarr = new Array();
// 動態的新增資料
myarr[0] = "sp";
myarr[1] = 90;
window.alert(myarr.length + " " + myarr); // 2 sp 90
myarr.pop(); // 出棧
window.alert(myarr.length + " " + myarr); // 1 sp
myarr.push("abcd");
window.alert(myarr.length + " " + myarr); // 2 sp abcd
Number 類
① toString () 把一個Number 物件轉換為一個字串,並返回結果。
② toFixed() 把數字轉換為字串,結果的小數點後有指定位數的數字。// 這個是四捨五入的
js 系統函式-- 常用系統函式
1、eval() // 可以把一個字串當作指令碼來執行,用處很大;
2、isNaN() // 判斷某個值是不是數(該函式不是特別完美) ;
滑鼠事件:
當使用者在頁面上用滑鼠點選頁面元素時,對應的 dom 節點會觸發滑鼠事件。主要有 click 、dblclick、mousedown、mouseout、mouseover、mouseover、mouseup、mousemove等
鍵盤事件:
當使用者用鍵盤輸入資訊時,會觸發鍵盤操作事件。主要包括keydown、keypress、keyup三個。
HTML 事件:
在 html 節點載入變更等相關的事件,比如window的onload、unload、abort、error,文字框的select、change等等。
其他事件:
頁面中的一些特殊物件執行過程中產生的事件,比如xmlhttp request 物件的相關事件。
這個包括ajax事件,O(∩_∩)O哈哈~
相關文章
- js:物件導向程式設計,帶你認識封裝、繼承和多型JS物件程式設計封裝繼承多型
- JS物件導向:JS繼承方法總結JS物件繼承
- 物件導向三大特徵(封裝/繼承/多型)物件特徵封裝繼承多型
- 如何講清楚 Java 物件導向的問題與知識?(類與物件,封裝,繼承,多型,介面,內部類...)Java物件封裝繼承多型
- JS的物件導向(理解物件,原型,原型鏈,繼承,類)JS物件原型繼承
- APIjson多層資料實體類封裝(利用泛型技術)APIJSON封裝泛型
- JS原型繼承和類式繼承JS原型繼承
- [JAVA] Java物件導向三大特徵:封裝、繼承、多型Java物件特徵封裝繼承多型
- JS的事件物件與事件機制JS事件物件
- JS物件導向Object型別JS物件Object型別
- JS 封裝類JS封裝
- 物件導向的三個基本特徵是:封裝、繼承、多型物件特徵封裝繼承多型
- js高階 物件導向 學習筆記JS物件筆記
- React.js學習筆記之事件系統ReactJS筆記事件
- JS物件導向程式設計(四):繼承JS物件程式設計繼承
- [譯]理解 Node.js 事件驅動機制Node.js事件
- 物件導向三大特性-----封裝、繼承、多型物件封裝繼承多型
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- js函式閉包JS函式
- JsonValue 封裝類JSON封裝
- js內部事件機制–單執行緒原理JS事件執行緒
- 經典 JS 閉包面試題JS面試題
- 剛需,jackjsonjson轉化內部類問題JSON
- JS 事件機制 Event LoopJS事件OOP
- JS閉包函式概念JS函式
- js為物件註冊多個事件處理函式程式碼JS物件事件函式
- JS物件導向JS物件
- js原型繼承與多型 How to apply virtual function in javascriptJS原型繼承多型APPFunctionJavaScript
- js繼承方式講解JS繼承
- 理解Js中物件導向程式設計的繼承JS物件程式設計繼承
- JS中的多種繼承方式JS繼承
- js類的筆記JS筆記
- js繼承JS繼承
- 常用js函式封裝JS函式封裝
- js建構函式的繼承JS函式繼承
- 自己動手封裝js工具類(JS中定義類的幾種方式)封裝JS
- js--事件迴圈機制JS事件
- Ext.js4.2.1 事件機制JS事件