日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747


1:基本概念

面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建基于現(xiàn)實(shí)世界模型的一種編程模式。

這句話的意思是:每個(gè)對(duì)象能夠接受信息,處理數(shù)據(jù)和發(fā)送消息給其他對(duì)象;這就意味著在這個(gè)編程模式下,每一個(gè)對(duì)象都是一個(gè)獨(dú)立的個(gè)體,它可以接收,可以處理,然后再把消息發(fā)送出去。每個(gè)對(duì)象都可以被看作是一個(gè)擁有清晰角色或責(zé)任的獨(dú)立個(gè)體。

使用面向?qū)ο缶幊淌菫榱舜龠M(jìn)更好的靈活性和可維護(hù)性。

面向?qū)ο蟮闹匾R(shí)點(diǎn):

Namespace命名空間

Class 類(定義對(duì)象的屬性和方法)

Object 對(duì)象(類的一個(gè)實(shí)例)

Property 屬性(對(duì)象的特征)

Method 方法(對(duì)象的能力)

Constructor 構(gòu)造函數(shù)(對(duì)象初始化的瞬間被調(diào)用的方法)

Inheritance 繼承(繼承另一個(gè)類的特征)

Encapsulation 封裝(把數(shù)據(jù)和相關(guān)的方法綁定在一起使用)

Polymorphism多態(tài)(不同類可以定義相同的方法或?qū)傩裕?/p>

面向?qū)ο笈c面向過程比較,面向過程更注重過程。

2:Namespace 命名空間

命名空間只是另一個(gè)包含方法、屬性和對(duì)象的對(duì)象。在js中要有獨(dú)立的命名空間,首先需要?jiǎng)?chuàng)建全局變量,不同的全局變量用于區(qū)分不同的命名空間。因?yàn)閖s最頂層只有一個(gè)全局的命名空間,然后在全局變量上面增加一些變量、方法和功能,這些就是這個(gè)對(duì)象的屬性。

  • 命名空間是一個(gè)包含方法,屬性和對(duì)象的對(duì)象
var myNameScape = myNameScape || {};
?
// 子命名空間 
myNameScape.event = {};
?
// 定義方法和屬性 
myNameScape.commonMethods = {
 name: '',
 validateName: function(name){
 // name格式驗(yàn)證 
 },
};
?
// 定義方法 
myNameScape.event = {
 addListener: function(el, type, fn) {
 // ... 
 },
 removeListener: function(el, type, fn) {
 // ...
 },
}
  • 內(nèi)置對(duì)象,常見的內(nèi)置對(duì)象:Math、Array、Object

3:Class 類(構(gòu)造函數(shù))

因?yàn)镴AVAScript是一種基于原型的語言,所以沒有類聲明語句。因此這個(gè)類就是構(gòu)造函數(shù)。

它是用方法作類,比如:

function Person(){
 
}
?
var Person = function(){
?
}

或者當(dāng)我們要把Person實(shí)例化時(shí),我們需要重新new Person,然后我們就得到了Object也就是對(duì)象。

4:Object 對(duì)象(類的實(shí)例)

function Person(){
 
}
var person1 = new Person();
var person2 = new Person();

5:構(gòu)造器(Constructor)

構(gòu)造器是對(duì)象中的一個(gè)方法,每次實(shí)例化都會(huì)被調(diào)用;JavaScript中函數(shù)可以作為構(gòu)造器使用;每個(gè)聲明的函數(shù)都可以在實(shí)例化后被調(diào)用執(zhí)行。

function Person(){
 console.cog('Person created!');
}
var person1 = new Person();
var person2 = new Person();

6:Property 屬性

類中包含的變量。

function Person(firstName) {
 this.firstName = firstName;
 console.log('Person created!');
}
?
var person1 = new Person('Alice');
var person2 = new Person('Bob');

7:Method 方法

方法與屬性相似;方法是函數(shù),屬性可以被定義為函數(shù)。

function Person(firstName) {
 this.firstName = firstName;
}
Person.prototype.sayHello = function(){
 console.log("Hello,I'm" + this.firstName);
};
?
var person1 = new Person('Alice');
var person2 = new Person('Bob');

8:Inheritance 繼承

繼承:子類可以使用父類的所有功能,并且對(duì)這些功能進(jìn)行擴(kuò)展。繼承的過程,就是從一般到特殊的過程。

繼承本質(zhì)上一個(gè)是原型鏈繼承,一個(gè)是構(gòu)造函數(shù)繼承,在此之后也衍生出很多,一般來講,最好的方法就是第三種繼承:混合繼承。借助原型鏈和構(gòu)造函數(shù)繼承來達(dá)到一個(gè)較完善的效果。

9:Encapsulation 封裝(把數(shù)據(jù)和相關(guān)的方法綁定在一起使用)

封裝:把客觀事物封裝成抽象的類,隱藏屬性和方法的實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開接口。

function Person(name, age, sex){
 this.name = name;
 this.age = age;
 this.sex = sex;
}
Person.prototype.show = function (){
 console.log(this.name + ' ' + this.sex + ' ' + this.age);
}
var person = new Person('Eric', 18, '男');

10:Polymorphism 多態(tài)

多態(tài)就是通過對(duì)傳遞的參數(shù)判斷來執(zhí)行邏輯,即可實(shí)現(xiàn)一種多態(tài)處理機(jī)制。

多態(tài)實(shí)際上是同一操作作用于不同的對(duì)象, 可以有不同的解釋, 產(chǎn)生不同的執(zhí)行結(jié)果。

多態(tài)最根本的作用就是通過把過程化的條件語句轉(zhuǎn)化為對(duì)象的多態(tài)性,從而消除這些條件分支語句。

function Person(name, age){
 this.name = name;
 this.age = age;
}
?
Person.prototype.toString = function() {
 return "I am a Person, my name is " + this.name;
}
?
function Man(name, age){
 Person.Apply(this, arguments);
}
?
Man.prototype = Object.create(Person.prototype);
?
Man.prototype.toString = function() {
 return "I am a Man, my name is"+this.name;
}
?
var person = new Person("Neo", 19);
var man1 = new Man("Davin", 18);
var man2 = new Man("Jack", 19);

分享到:
標(biāo)簽:JavaScript OOP
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定