乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      javascript中創(chuàng)建對象的幾種方式

       昵稱10504424 2012-09-10
      言:

               隨著web 2.0 的興起(最具代表性的是Ajax技術(shù)了),javascript不再是程序員眼中的“玩具語言”。 編程在不斷的簡化,可是“用戶體驗、性能、兼容性、可擴展......”要求卻在不斷提高,隨之涌現(xiàn)出Prototype、jQuery、ExtJs、Dojo等優(yōu)秀的框架(類庫),大大簡化了web開發(fā)。

             越來越多的人開始深入研究和使用javascript,當然,企業(yè)對開發(fā)者的要求也越來越高。就拿自己的經(jīng)歷來講,零幾年的時候,我能拿javascript寫一些頁面UI效果,做網(wǎng)站的表單驗證等操作,當時覺得已經(jīng)很酷了。但是換到現(xiàn)在,如果連XMLHttpRequest、JSON是什么都不知道,連javascript中的面向?qū)ο?基于對象編程都不了解,還敢稱自己是優(yōu)秀的web程序員嗎?(關(guān)注前沿技術(shù)的朋友,一定了解node.js、MongoDB,這都離不開javascript。)

           javascript的靈活性,讓人又愛又恨。典型的入門簡單,精通很難。理解javascript OOP/基于對象的編程,是判斷程序員javascript水平的分水嶺。而javascript 基于對象編程中,最基本的是“創(chuàng)建對象”,往往讓很多熟悉其他面向語言(Java、C#、C++)的程序員覺得似懂非懂或者難以適應(yīng)。所以,本文首先將向大家介紹,javascript 中常見的創(chuàng)建對象的幾種方式。

       1. 簡單對象的創(chuàng)建    使用對象字面的方式{}   創(chuàng)建一個對象(最簡單,好理解,推薦使用)

      復(fù)制代碼
      var Cat  = {};//JSON
       Cat.name="kity";//添加屬性并賦值
       Cat.age=2;
       Cat.sayHello=function(){
        alert("hello "+Cat.name+",今年"+Cat["age"]+"歲了");//可以使用“.”的方式訪問屬性,也可以使用HashMap的方式訪問
       }
       Cat.sayHello();//調(diào)用對象的(方法)函數(shù)
      復(fù)制代碼

      2.用function(函數(shù))來模擬class (無參構(gòu)造函數(shù))

           2.1 創(chuàng)建一個對象,相當于new一個類的實例

      復(fù)制代碼
      function Person(){
      
      }
      var personOne=new Person();//定義一個function,如果有new關(guān)鍵字去"實例化",那么該function可以看作是一個類
      personOne.name="dylan";
      personOne.hobby="coding";
      personOne.work=function(){
      alert(personOne.name+" is coding now...");
      }
      
      personOne.work();
      復(fù)制代碼

      2.2 可以使用有參構(gòu)造函數(shù)來實現(xiàn),這樣定義更方便,擴展性更強(推薦使用)

      復(fù)制代碼
      function Pet(name,age,hobby){
         this.name=name;//this作用域:當前對象
         this.age=age;
         this.hobby=hobby;
         this.eat=function(){
            alert("我叫"+this.name+",我喜歡"+this.hobby+",也是個吃貨");
         }
      }
      var maidou =new Pet("麥兜",5,"睡覺");//實例化/創(chuàng)建對象
      
       maidou.eat();//調(diào)用eat方法(函數(shù))
      復(fù)制代碼

      3.使用工廠方式來創(chuàng)建(Object關(guān)鍵字)

      復(fù)制代碼
      var wcDog =new Object();
       wcDog.name="旺財";
       wcDog.age=3;
       wcDog.work=function(){
         alert("我是"+wcDog.name+",汪汪汪......");
       }
      
       wcDog.work();
      復(fù)制代碼

      4.使用原型對象的方式  prototype關(guān)鍵字

      復(fù)制代碼
      function Dog(){
       
       }
       Dog.prototype.name="旺財";
       Dog.prototype.eat=function(){
       alert(this.name+"是個吃貨");
       }
       var wangcai =new Dog();
       wangcai.eat();
      復(fù)制代碼

      5.混合模式(原型和構(gòu)造函數(shù))

      復(fù)制代碼
      function Car(name,price){
        this.name=name;
        this.price=price; 
      }
       Car.prototype.sell=function(){
         alert("我是"+this.name+",我現(xiàn)在賣"+this.price+"萬元");
        }
      
      var camry =new Car("凱美瑞",27);
      camry.sell(); 
      復(fù)制代碼

      6.動態(tài)原型的方式(可以看作是混合模式的一種特例)

      復(fù)制代碼
      function Car(name,price){
        this.name=name;
        this.price=price; 
        if(typeof Car.sell=="undefined"){
         Car.prototype.sell=function(){
          alert("我是"+this.name+",我現(xiàn)在賣"+this.price+"萬元");
         }
       Car.sell=true;
        }
      }
      
      var camry =new Car("凱美瑞",27);
      camry.sell();
      復(fù)制代碼

      以上幾種,是javascript最常用的創(chuàng)建對象的方式。初學(xué)者看到后,可能會暈掉,甚至?xí)X得擔心。其實完全不用擔心,這些種方式,只需要掌握一兩種,對其他的幾種只需要理解就好了。這正是javascript的靈活性。沒有固定的推薦方式選擇自己最容易理解和掌握的方式即可。每個人的代碼風(fēng)格可能都不同。將來你可能需要去研究jQuery的源碼,或者參照別的插件去改寫、去開發(fā)屬于自己的插件,都需要去理解別人的代碼風(fēng)格。而這些類庫、插件,都是建立在面向?qū)ο?基于對象的基礎(chǔ)只上的。

      好了,本文就先介紹到這里。由于筆者表達能力和技術(shù)水平確實有限,難免有偏差,望讀者諒解!

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多