国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

淺談JavaScript中的面向對象

Magicer / 1680人閱讀

摘要:面向對象面向對象編程的全稱是,簡稱,面向對象編程是用抽象方式創建基于現實世界模型的一種編程模式。面向對象編程的三個主要特征是封裝繼承多態。

面向對象

面向對象編程的全稱是Object Oriented Programming,簡稱OOP,面向對象編程是用抽象方式創建基于現實世界模型的一種編程模式。
面向對象編程可以看做是使用一系列對象相互協作的軟件設計,面向對象程序設計的目的是在編程中促進更好的靈活性和可維護性。憑借其對模塊化的重視,面向對象的代碼開發更簡單,更容易理解。
面向對象編程的三個主要特征是:1.封裝 2.繼承 3.多態。
所有程序是由一定的屬性和行為對象組成的,不同的對象的訪問通過函數調用來完成,對象間所有的交流都是通過方法調用,通過對封裝對象數據,提高復用率。
JavaScript是一種基于原型的面向對象語言,而不是基于類,正是由于這一根本的區別,其如何創建對象的層級結構以及對象的屬性與屬性值是如何繼承的并不是那么清晰。
基于原型的語言并不存在這種區別:它只有對象。基于原型的語言具有所謂原型對象的概念。原型對象可以作為一個模板,新對象可以從中獲得原始的屬性。任何對象都可以指定其自身的屬性,既可以是創建時也可以在運行時創建,而且,任何對象都可以作為另一個對象的原型,從而允許后者共享前者的屬性。

封裝

封裝就是按照要求使用并得到對應的結果,而不需要知道其真實的執行原理是怎么樣的。
封裝主要用于闡述對象中所包含(或封裝)的內容,它們通常由兩部分組成:
1.相關的數據(用于存儲屬性)
2.基于這些數據所能做的事情

繼承

繼承通常是指類與類之間的關系,如果兩個類都有相同的屬性和方法,那么可以讓一個類繼承于另一個類,這樣就不需要在前者再次定義同樣的屬性或方法。
創建一個或多個類的專門版本類方式稱為繼承(JavaScript只支持單繼承)。創建的專門版本的類通常叫做子類,另外的類通常叫做父類。
在JavaScript中,繼承通過賦予子類一個父類的實例并專門化子類來實現。

多態

不同的對象可以定義具有相同名稱的方法,方法是作用于所在的對象中。這種不同對象通過相同方法的調用實現各自行為的能力,被稱之為多態。
例如A對象具有sayMe()方法,B對象繼承與A對象,那B對象中也具有sayMe()方法。當調用sayMe()方法時,并不知道該方法是A對象還是B對象。但這并不影響代碼的正常工作。

構造函數

構造函數又稱為構造器或對象模板,是對象中的一個方法,在實例化時構造器被調用。在JavaScript中函數就可以作為構造器使用,因此不需要特別定義一個構造器方法。

//這里的Fun()并不是作為函數,而是構造函數
function Fun(){
    console.log("這是一個構造函數");
}
//創建fn對象需要使用new關鍵字
var fn=new Fun();

構造函數的屬性
構造函數的屬性實際上就是對象的變量。一個對象可以包含多個屬性,定義構造函數的屬性時使用this關鍵字。

function Fun(firstName){
    this.firstName=firstName;
    console.log("這是一個構造函數");
}

var fn=new Fun("張三");
console.log("這個是"+fn.firstName);

構造函數的方法
構造函數的方法很想構造函數的屬性,不同的是方法是一個函數(或者像函數一樣被定義)。定義構造函數的方法時使用this關鍵字。

var Fun=function(name){
    this.name=name;
    this.sayMe=function(){
        console.log("hello"+this.name);
    }
}
var fn=new Fun("張三");
fn.sayMe();
this關鍵字

JavaScript有一套完全不同于其他語言對this處理機制,this關鍵字本身沒有任何含義,在如下幾種不同的情況下,this指向的各不相同

全局范圍內:this關鍵字指向全局對象

this.num=100;
consolo.log(a);

構造函數內:this關鍵字會指向新創建的對象

構造函數的方法內:this關鍵字會指向當前對象

var hero={};
hero.sayName=function(){
    return "hello"+this.name;
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108157.html

相關文章

  • 淺談面向對象javascript幾個特性

    摘要:中的和是一門很靈活的語言,尤其是。即然是面向對象的編程語言,那也是不可或缺的。在中,永遠指向的是他的調用者。定義是存在于實例化后對象的一個屬性,并且指向原對象的屬性。我們在擴展的時候,同時父類也會有對應的方法,這很顯然是一個很嚴重的問題。 javascript中的this和new javascript是一門很靈活的語言,尤其是function。他即可以以面向過程的方式來用,比如: f...

    JayChen 評論0 收藏0
  • 淺談JavaScript面向對象和它的封裝、繼承、多態

    摘要:會造成內存浪費的問題構造函數繼承聲明父類聲明子類生成實例組合式繼承組合式繼承是汲取了兩者的優點,既避免了內存浪費,又使得每個實例化的子類互不影響。 寫在前面 既然是淺談,就不會從原理上深度分析,只是幫助我們更好地理解... 面向對象與面向過程 面向對象和面向過程是兩種不同的編程思想,剛開始接觸編程的時候,我們大都是從面向過程起步的,畢竟像我一樣,大家接觸的第一門計算機語言大概率都是C語...

    MAX_zuo 評論0 收藏0
  • 淺談OOP Javascript [1]

    摘要:工廠模式優點集中實例化,可以傳參等缺點分不清屬于哪個對象我們先來談談優點,看例子集中實例化返回實例化對象返回返回不難看出,工廠模式比上面的例子減少了很多代碼。 ECMAscript開發的兩種模式:1.過程化 2.OOP(面向對象) 面向對象的語言有一個標志,那就是類的概念,而通過類可以創建任意多個具有相同屬性的方法的對象。但是ECMAscript中沒有類的概念! 又談作用域 首先...

    xinhaip 評論0 收藏0
  • 淺談JavaScript面向對象

    摘要:不必在構造函數中定義對象實例的信息。其次,按照一切事物皆對象的這餓極本的面向對象的法則來說,類本身并不是一個對象,然而原型方式的構造函數和原型本身也是個對象。第二個問題就是在創建子類型的實例時,不能向超類型的構造函數中傳遞參數。 前言 對象(Object)應該算是js中最為重要的部分,也是js中非常難懂晦澀的一部分。更是面試以及框架設計中各出沒。寫這篇文章,主要參考與JavaScrip...

    cyixlq 評論0 收藏0
  • 淺談 JavaScript 原型鏈

    摘要:數組的構造函數是原型鏈的指向與其他除以外的構造函數相同,的也指向頂級原型對象,每一個數組都是的實例,都指向。實例對象查找構造函數原型對象的方法一般會把對象共有的屬性和方法都放在構造函數的原型對象上。 showImg(https://segmentfault.com/img/remote/1460000018998704?w=900&h=506); 閱讀原文 概述 在 JavaScr...

    explorer_ddf 評論0 收藏0

發表評論

0條評論

Magicer

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<