3種建立、調用JavaScript對象的方法

   hey you guys,兩個月沒有寫技術博客了。做爲一名有理想、有抱負的程序員,兩個月不寫技術博客,真該打。業精於勤,荒於嬉。行成於思,毀於隨。勤奮是必不可少的,從此養成一週至少一篇博客的習慣。好了,不瞎扯了,書歸正傳。  今天在作項目時,遇到了須要建立JavaScript對象的狀況。因此Bing了一篇老外寫的關於3種建立JavaScript對象的文章,看後跟着打了一遍代碼。感受方法挺好的,在這裏與你們分享一下。javascript

  1、利用函數建立對象:php

//定義對象
function Animal(type)
{
    this.name="";
    this.type=type;
   this.introduction=function(){
         return "個人名字是: "+this.name+",我屬於 "+this.type;
}
}


var  animal=new Animal("家禽");   //實例化咱們上面建立的對象
       animal.name="小紅";
      alert(animal.introduction());      //調用它的introduction函數(此時,頁面會彈出:個人名字是 小紅,我屬於 家禽);

這種方法,你們必定都很熟悉了。可是,使用這種方法會形成性能的損耗。在這裏,咱們是經過new關鍵子來實例化對象的。其實,new關鍵子是作了兩件事。一,定義了一個匿名方法(Animal)。2、調用它。這樣就不如咱們接下來要介紹的方法高效了。java

 

2、利用對象字面量(object literals):程序員

     不知道翻譯的對不對,待會我會把原文地址告訴你們,有興趣的能夠看原文。設計模式

//定義對象
    var Book=
    {
          name:"紅樓夢",
          type:"文學做品",
          getAuthor:function()
    {
             return :"我是曹雪芹的孩子!";
    }
   }


      alert(Book.GetAuthor());  //調用對象方法,此時頁面會出現:我是曹雪芹的孩子。
       Book.name="灌籃";   //修改對象屬性
       alert(Book.name);    //此時,頁面會彈出:灌籃

   相信你們看到代碼,應該明白了爲何說這個方法會高效一些了。由於,它至關於定義了一個JavaScript全局變量。咱們能夠直接用它,不須要實例化它。可是,這樣看起來怪怪的啊。那麼,解決方案來了。咱們來看看第三種方法吧。函數

 

 3、單例模式(Singleton using a function):性能

     翻譯成單例模式,可能不是太妥。先看代碼吧:this

//定義對象
    var  Gender=new function()
 {
       this.type="女生";
      this.speaking=function()
{
      return "我是"+this.type;
}
}


     alert(Gender.speaking();)   //使用對象  此時頁面會出現:我是女生。

  你們看這段兒代碼,是否是與咱們的方法一很像呢?可是,它可像方法一那樣工做的。方法一,用一次對象,就要建立一次對象。這個方法,建立一次對象,就能夠永久使用。因此,這種方式,很相似於設計模式中的單例模式。spa

    原文地址:http://www.phpied.com/3-ways-to-define-a-javascript-class/翻譯

相關文章
相關標籤/搜索