面向過程的時候我們寫**的方式是獲取元素、定義訊號量、定義鎖都是遇見需求就定義乙個變數但是 無法復用 並且主要就是定義的 是變數
物件導向就是操作的是物件把寫**的風格從面向過程改為物件導向 把變數封裝成物件即可
//面向過程
var username =
"王老五"
;var age =13;
var *** =
"男";
console.
log(
+ username +
"我今年"
+ age +
"歲,我是乙個"
+ *** +
"孩子"
)
//物件導向
var obj =
console.
log(
+ obj.username +
"我今年"
+ obj.age +
"歲,我是乙個"
+ obj.*** +
"孩子"
)
工廠模式
如何復用**
function
createpeople()
return obj;
}var o1 =
createperson()
;var o2 =
createperson()
;var o3 =
createperson()
;var o4 =
createperson()
;
// 當然現在還欠缺一點
// 現在所有的人都同乙個屬性對應同乙個屬性值
varcreateperson
=function
(username, age, ***)
}var o1 =
createperson
("張三",13
,"女"
)var o2 =
createperson
("李四",23
,"女"
) console.
log(o1, o2)
;
以上就是物件導向了,其中這個封裝出來的函式的作用是 建立物件 所以這種具備特定功能的函式 我們管他叫做工廠函式工廠模式的不足這種書寫**的模式 就叫做工廠模式
工廠具備的特點:產品的結構是一致的 屬性值是不同的
// 建立人的工廠
varcreateperson
=function
(username, age, ***)
}var o1 =
createperson
("張三",13
,"女"
)// 建立學生的工廠
varcreatestudent
=function
(name, age, ***, grade)
}var s1 =
createstudent
("小華",6
,"男",1
);
兩個工廠 生產出來的產品 無法通過**來識別typeof 與 instanceof
js中型別分為 引用型別和值型別typeof 可以識別值型別的資料的不同
如何區分引用型別的不同呢?
instanceof關鍵字用於區分引用資料型別的精確型別的
var arr = ;
console.log(arr instanceof array)
var obj = {};
console.log(obj instanceof object)
instanceof的用法
物件 instanceof 型別
如果返回的是真 說明 前面的物件是後面的型別
如果返回的是假 說明 前面的物件不是後面的型別
所有物件都是object物件的後代,所以任何物件和object做instanceof都會返回true
//補充: 正則的new的用法
var reg =
/abc/g
;var reg1 =
newregexp
("abc"
,"g");
console.
log(reg, reg1)
//如果正則**現特殊字元
var reg2 =
/\w+/g
;var reg3 =
newregexp
("\\w+"
,"g");
console.
log(reg2, reg3)
1、建構函式也是乙個普通函式,建立方式和普通函式一樣,但建構函式習慣上首字母大寫
2、建構函式和普通函式的區別在於:呼叫方式不一樣。作用也不一樣(建構函式用來新建例項物件)
3、呼叫方式不一樣。
a. 普通函式的呼叫方式:直接呼叫 person();
b.建構函式的呼叫方式:需要使用new關鍵字來呼叫 new person();
4、建構函式的函式名與類名相同:person( ) 這個建構函式,person 既是函式名,也是這個物件的類名
5、內部用this 來構造屬性和方法
function
person
(name,job,age)
}
5、建構函式的執行流程
a、立刻在堆記憶體中建立乙個新的物件
b、將新建的物件設定為函式中的this
c、逐個執行函式中的**
d、將新建的物件作為返回值
6、普通函式例子:因為沒有返回值,所以為undefined
7、建構函式例子:建構函式會馬上建立乙個新物件,並將該新物件作為返回值返回
JS物件導向 建構函式 繼承
繼承 子類繼承父類的屬性和方法 好處 減少 量,公共的父類可以復用.降低耦合度.js裡實現繼承的方法 1.通過改變構造建構函式中物件的指向實現繼承 2.通過原型鏈實現繼承.function animal function cat var cat new cat new出乙個例項改變呼叫物件的方法 1...
Js物件導向建構函式繼承
建構函式繼承 function animal function dog name,color 如果 狗 的prototype物件,指向乙個animal的例項,那麼所有 狗 的例項,就能繼承animal了。dog.prototype new animal dog.prototype.construct...
js物件導向程式設計之建構函式
工廠模式是乙個比較廣為人知的模式,這種模式將細節抽象出來。如下 function createperson name,age,job returno var person1 createperson ds 12,dada var person2 createperson ds2 122,dada2 ...