zoukankan      html  css  js  c++  java
  • JavaScript 对象

    本文讨论几种js创建对象的方法,先从最好理解 
    1、工厂模式开始: 

     1 <script text="javascript">  
     2     function createPerson(name,age,job){   
     3         var o =new Obeject();   
     4         o.name = name;   
     5         o.age = age;   
     6         o.job = job;   
     7         o.sayName = function(){   
     8             alert(this.name);   
     9         };   
    10         return o;   
    11     }   
    12       
    13     var tanya = createPerson("tanya","30","female");   
    14     var ansel = createPerson("ansel","30","male");   
    15     tanya.sayName();   
    16     ansel.sayName();   
    17 </script>  


    2、对象模式称为构造函数模式 

     1 <script text="javascript">  
     2         //执行第一句代码前,js引擎会为我们生成一个对象  
     3     function Person(name,age,job){   
     4         this.name = name;   
     5         this.age = age;   
     6         this.job = job;   
     7         this.sayName = function(){   
     8             alert(this.name);   
     9         };   
    10         //此处有一个隐藏的return语句,用于将之前生成的对象返回。  
    11     }   
    12     var tanya = new Person("tanya","30","female");   
    13     var ansel = new Person("ansel","30","male");   
    14     tanya.sayName();   
    15     ansel.sayName();   
    16 </script>  

    3、原型模式 

     1 <script text="javascript">  
     2     function Person(){}   
     3       
     4     Person.prototype.name = name;   
     5     Person.prototype.age = age;   
     6     Person.prototype.job = job;   
     7     Person.prototype.sayName = function(){   
     8         alert(this.name);   
     9     };   
    10       
    11     var person = Person();   
    12     var person2 = Person();  
    13 </script>  

    如果使用原型对象方式,那么生成的所有对象会共享原型中的属性,这样一个对象改变了该属性也会反映到其他的对象当中。 
    4、使用原型+构造函数方式来定义对象 

     1 <script text="javascript">  
     2     function Person(name,age,job){   
     3         this.name = name;   
     4         this.age = age;   
     5         this.job = job;   
     6     }   
     7     Person.prototype.sayName= function(){   
     8         alert(this.name);   
     9     };   
    10     var tanya = new Person("tanya","30","female");   
    11     var ansel = new Person("ansel","30","male");   
    12     tanya.sayName();   
    13     ansel.sayName();   
    14 </script>  

    使用原型+构造函数方式来定义对象,对象之间的属性互不干扰,各个对象间共享同一个方法。

  • 相关阅读:
    左连接,右连接,内连接及全连接语法及区别
    System.getProperty("user.dir");
    mysql count统计多列值相同的条数
    mybatis 查询返回参数包含list的映射写法
    idea 永久破解
    springboot读取自定义配置文件及乱码问题
    linux CentOS7 firewall
    关于@Valid 不生效的问题
    简单记录springboot项目访问静态资源的配置
    maven 远程部署到tomcat服务器
  • 原文地址:https://www.cnblogs.com/laj12347/p/2962591.html
Copyright © 2011-2022 走看看