對(duì)象:黑盒子识藤,不知道內(nèi)部構(gòu)造莺戒,但會(huì)使用表面的功能
面向?qū)ο蟮奶攸c(diǎn)
- 抽象:抽出我們關(guān)心的特點(diǎn)
- 封裝:黑盒子懊昨,不知道內(nèi)部構(gòu)造,但會(huì)使用表面的功能
- 繼承:繼承父類所有特點(diǎn)迅皇,又有自己的特點(diǎn)
1. 多重繼承
2. 多態(tài)
變量/屬性 函數(shù)/方法
- 變量的自由的昧辽,屬性是有主的(對(duì)象的)
- 函數(shù)是自由的,方法是有主的(對(duì)象的)
this:當(dāng)前的方法屬于誰(shuí)(當(dāng)前發(fā)生事件的對(duì)象)
工廠模式的缺點(diǎn)(構(gòu)造函數(shù))
- 沒有new
- 同樣的方法沒有共享,導(dǎo)致占用內(nèi)存登颓,showName是同樣的方法搅荞,不需要重復(fù)初始化
function createPerson(name){
//原料
var p = new Object();
//加工
p.name = name;
p.showName = function(){
return this.name;
}
//出廠
return obj;
}
改1
解決new 但是方法還是沒有共享
// 類名首字母大寫
function CreatePerson2(name){
//系統(tǒng)偷偷為我們創(chuàng)建
//var this = new Object();
this.name = name;
this.showName = function(){
return this.name;
}
//系統(tǒng)偷偷為我們出廠
//return this;
}
var jack = new createPerson2("jack");
var dav = new createPerson2("dav");
alert(jack.showName == dav.showName); // false
類和對(duì)象
類: 模子 Array
對(duì)象:產(chǎn)品(成品) arr
原型 prototype
css中的class:一次給一組元素加上樣式 --->js的原型
行間樣式: 一次給一個(gè)元素加上樣式 --->js給對(duì)象加?xùn)|西
改2 混合方式
- 構(gòu)造函數(shù)加屬性
- 原型加方法
- 類名首字母大寫
function CreatePerson3(name){
this.name = name;
}
//為類加一個(gè)共通方法 實(shí)現(xiàn)方法的共享
CreatePerson3.prototype.showName = function(){
return this.name;
}
var jack = new CreatePerson3("jack");
var dav = new CreatePerson3("dav");
alert(jack.showName == dav.showName); // true