摘要:基本概念面向對象編程是用抽象方式創建基于現實世界模型的一種編程模式。使用面向對象編程是為了促進更好的靈活性和可維護性。面向對象與面向過程比較,面向過程更注重過程。
1:基本概念
面向對象編程是用抽象方式創建基于現實世界模型的一種編程模式。
這句話的意思是:每個對象能夠接受信息,處理數據和發送消息給其他對象;這就意味著在這個編程模式下,每一個對象都是一個獨立的個體,它可以接收,可以處理,然后再把消息發送出去。每個對象都可以被看作是一個擁有清晰角色或責任的獨立個體。
使用面向對象編程是為了促進更好的靈活性和可維護性。
面向對象的重要知識點:
Namespace命名空間
Class 類(定義對象的屬性和方法)
Object 對象(類的一個實例)
Property 屬性(對象的特征)
Method 方法(對象的能力)
Constructor 構造函數(對象初始化的瞬間被調用的方法)
Inheritance 繼承(繼承另一個類的特征)
Encapsulation 封裝(把數據和相關的方法綁定在一起使用)
Polymorphism多態(不同類可以定義相同的方法或屬性)。
面向對象與面向過程比較,面向過程更注重過程。
2:Namespace 命名空間命名空間只是另一個包含方法、屬性和對象的對象。在js中要有獨立的命名空間,首先需要創建全局變量,不同的全局變量用于區分不同的命名空間。因為js最頂層只有一個全局的命名空間,然后在全局變量上面增加一些變量、方法和功能,這些就是這個對象的屬性。
命名空間是一個包含方法,屬性和對象的對象
var myNameScape = myNameScape || {}; // 子命名空間 myNameScape.event = {}; // 定義方法和屬性 myNameScape.commonMethods = { name: "", validateName: function(name){ // name格式驗證 }, }; // 定義方法 myNameScape.event = { addListener: function(el, type, fn) { // ... }, removeListener: function(el, type, fn) { // ... }, }
內置對象
常見的內置對象:Math、Array、Object
因為JavaScript是一種基于原型的語言,所以沒有類聲明語句。因此這個類就是構造函數。
它是用方法作類,比如:
function Person(){ } var Person = function(){
或者當我們要把Person實例化時,我們需要重新new Person,然后我們就得到了Object也就是對象。
4:Object 對象(類的實例)function Person(){ } var person1 = new Person(); var person2 = new Person();5:構造器(Constructor)
構造器是對象中的一個方法,每次實例化都會被調用;JavaScript中函數可以作為構造器使用;每個聲明的函數都可以在實例化后被調用執行。
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 方法
方法與屬性相似;方法是函數,屬性可以被定義為函數。
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 繼承
繼承:子類可以使用父類的所有功能,并且對這些功能進行擴展。繼承的過程,就是從一般到特殊的過程。
繼承本質上一個是原型鏈繼承,一個是構造函數繼承,在此之后也衍生出很多,一般來講,最好的方法就是第三種繼承:混合繼承。借助原型鏈和構造函數繼承來達到一個較完善的效果。
9:Encapsulation 封裝(把數據和相關的方法綁定在一起使用)封裝:把客觀事物封裝成抽象的類,隱藏屬性和方法的實現細節,僅對外公開接口。
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 多態
多態就是通過對傳遞的參數判斷來執行邏輯,即可實現一種多態處理機制。
多態實際上是同一操作作用于不同的對象, 可以有不同的解釋, 產生不同的執行結果。
多態最根本的作用就是通過把過程化的條件語句轉化為對象的多態性,從而消除這些條件分支語句。
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);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106192.html
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:面向對象面向對象的概述面向對象是什么面向對象編程的全稱是,簡稱。面向對象編程是用抽象方式創建基于現實世界模型的一種編程。面向對象編程可以看做是使用一系列對象相互協作的軟件設計。面向對象編程的山歌主要的特征是封裝繼承多態。 面向對象 面向對象的概述 面向對象是什么 面向對象編程的全稱是Object Oriented Programming,簡稱OOP。面向對象編程是用抽象方式創建基于現實...
摘要:說到底面向對象才是程序語言的根本。其實面向對象編程說的就是自定義對象。里并沒有類的概念,所以嚴格上來講這是個假的面向對象里的面向對象編程現在好了,終于聽到別人鄙視我們了,給我們提供了類這個概念,其實是向傳統語言更靠齊了。 通過前兩篇文章,我們了解了對象的概念以及面向對象里的相關概念等知識,那前面說了對象分類里的前兩種,這篇文章要詳細去說第三種自定義對象,那真正的好戲這就來了! 面向對象...
摘要:如果要理解基于原型實現面向對象的思想,那么理解中得三個重要概念構造函數原型原型鏈對幫助理解基于原型的面向對象思想就顯得尤為重要。函數對象的原型在中,函數是一種特殊的對象,所有的函數都是構造函數的實例。 介紹 和java這種基于類(class-base)的面向對象的編程語言不同,javascript沒有類這樣的概念,但是javascript也是面向對象的語言,這種面向對象的方式成為 基...
閱讀 2808·2021-11-24 09:39
閱讀 2783·2021-09-23 11:45
閱讀 3411·2019-08-30 12:49
閱讀 3359·2019-08-30 11:18
閱讀 1923·2019-08-29 16:42
閱讀 3349·2019-08-29 16:35
閱讀 1327·2019-08-29 11:21
閱讀 1922·2019-08-26 13:49