zoukankan      html  css  js  c++  java
  • 3种创建、调用JavaScript对象的方法

       hey you guys,两个月没有写技术博客了。作为一名有理想、有抱负的程序员,两个月不写技术博客,真该打。业精于勤,荒于嬉。行成于思,毁于随。勤奋是必不可少的,今后养成一周至少一篇博客的习惯。好了,不瞎扯了,书归正传。  今天在做项目时,遇到了需要创建JavaScript对象的情况。所以Bing了一篇老外写的关于3种创建JavaScript对象的文章,看后跟着打了一遍代码。感觉方法挺好的,在这里与大家分享一下。

      一、利用函数创建对象:

    //定义对象
    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)。二、调用它。这样就不如我们接下来要介绍的方法高效了。

    二、利用对象字面量(object literals):

         不知道翻译的对不对,待会我会把原文地址告诉大家,有兴趣的可以看原文。

    //定义对象
        var Book=
        {
              name:"红楼梦",
              type:"文学作品",
              getAuthor:function()
        {
                 return :"我是曹雪芹的孩子!";
        }
       }
    
    
          alert(Book.GetAuthor());  //调用对象方法,此时页面会出现:我是曹雪芹的孩子。
           Book.name="灌篮";   //修改对象属性
           alert(Book.name);    //此时,页面会弹出:灌篮

       相信大家看到代码,应该明白了为什么说这个方法会高效一些了。因为,它相当于定义了一个JavaScript全局变量。我们可以直接用它,不需要实例化它。但是,这样看起来怪怪的啊。那么,解决方案来了。我们来看看第三种方法吧。

     三、单例模式(Singleton using a function):

         翻译成单例模式,可能不是太妥。先看代码吧:

    //定义对象
        var  Gender=new function()
     {
           this.type="女生";
          this.speaking=function()
    {
          return "我是"+this.type;
    }
    }
    
    
         alert(Gender.speaking();)   //使用对象  此时页面会出现:我是女生。

      大家看这段儿代码,是不是与我们的方法一很像呢?但是,它可像方法一那样工作的。方法一,用一次对象,就要创建一次对象。这个方法,创建一次对象,就可以永久使用。所以,这种方式,很类似于设计模式中的单例模式。

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

  • 相关阅读:
    12.7 Test
    51Nod.1766.树上最远点对(树的直径 RMQ 线段树/ST表)
    BZOJ.3675.[APIO2014]序列分割(DP 斜率优化)
    BZOJ.4515.[SDOI2016]游戏(树链剖分 李超线段树)
    BZOJ.3165.[HEOI2013]Segment(李超线段树)
    Linux系统CentOS进入单用户模式和救援模式详解
    KVM 管理界面挂载多UKEY
    挂载银行前置机Ukey到windows server2012虚拟机的操作记录
    为什么服务器做了raid 系统文件还会丢失?
    LVS+Keepalived深度理解,阐述你不知道的坑点
  • 原文地址:https://www.cnblogs.com/VitoCorleone/p/4180799.html
Copyright © 2011-2022 走看看