成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript面向?qū)ο缶幊?

Carbs / 2698人閱讀

摘要:基本概念面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建基于現(xiàn)實(shí)世界模型的一種編程模式。使用面向?qū)ο缶幊淌菫榱舜龠M(jìn)更好的靈活性和可維護(hù)性。面向?qū)ο笈c面向過程比較,面向過程更注重過程。

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是一種基于原型的語(yǔ)言,所以沒有類聲明語(yǔ)句。因此這個(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)最根本的作用就是通過把過程化的條件語(yǔ)句轉(zhuǎn)化為對(duì)象的多態(tài)性,從而消除這些條件分支語(yǔ)句。

    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);

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/106192.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    AaronYuan 評(píng)論0 收藏0
  • JavaScript面向對(duì)象編程——面向對(duì)象

    摘要:面向?qū)ο竺嫦驅(qū)ο蟮母攀雒嫦驅(qū)ο笫鞘裁疵嫦驅(qū)ο缶幊痰娜Q是,簡(jiǎn)稱。面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建基于現(xiàn)實(shí)世界模型的一種編程。面向?qū)ο缶幊炭梢钥醋鍪鞘褂靡幌盗袑?duì)象相互協(xié)作的軟件設(shè)計(jì)。面向?qū)ο缶幊痰纳礁柚饕奶卣魇欠庋b繼承多態(tài)。 面向?qū)ο?面向?qū)ο蟮母攀?面向?qū)ο笫鞘裁?面向?qū)ο缶幊痰娜Q是Object Oriented Programming,簡(jiǎn)稱OOP。面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建基于現(xiàn)實(shí)...

    SimonMa 評(píng)論0 收藏0
  • 再和“面向對(duì)象”談戀愛 - 面向對(duì)象編程概念(三)

    摘要:說到底面向?qū)ο蟛攀浅绦蛘Z(yǔ)言的根本。其實(shí)面向?qū)ο缶幊陶f的就是自定義對(duì)象。里并沒有類的概念,所以嚴(yán)格上來講這是個(gè)假的面向?qū)ο罄锏拿嫦驅(qū)ο缶幊态F(xiàn)在好了,終于聽到別人鄙視我們了,給我們提供了類這個(gè)概念,其實(shí)是向傳統(tǒng)語(yǔ)言更靠齊了。 通過前兩篇文章,我們了解了對(duì)象的概念以及面向?qū)ο罄锏南嚓P(guān)概念等知識(shí),那前面說了對(duì)象分類里的前兩種,這篇文章要詳細(xì)去說第三種自定義對(duì)象,那真正的好戲這就來了! 面向?qū)ο?..

    Cruise_Chan 評(píng)論0 收藏0
  • Javascript面向對(duì)象編程

    摘要:如果要理解基于原型實(shí)現(xiàn)面向?qū)ο蟮乃枷?,那么理解中得三個(gè)重要概念構(gòu)造函數(shù)原型原型鏈對(duì)幫助理解基于原型的面向?qū)ο笏枷刖惋@得尤為重要。函數(shù)對(duì)象的原型在中,函數(shù)是一種特殊的對(duì)象,所有的函數(shù)都是構(gòu)造函數(shù)的實(shí)例。 介紹 和java這種基于類(class-base)的面向?qū)ο蟮木幊陶Z(yǔ)言不同,javascript沒有類這樣的概念,但是javascript也是面向?qū)ο蟮恼Z(yǔ)言,這種面向?qū)ο蟮姆绞匠蔀?基...

    wanglu1209 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<