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/翻译

相关文章
相关标签/搜索