01_对象的创建方法

在平时的JS编码中,我们经常要创建一个对象,创建一个对象的方法有很多种,每一种方法都有自己的优缺点,这里全面剖析一下创建对象常用的6种方法,以及罗列他们的优缺点以供选择。

1.Object构造函数的方法;

2.对象字面量的方法;

3.工厂函数的模式;

4.自定义构造函数的方法;

5.使用原型的方法;

6.自定义构造函数和原型组合的方法;

01_Object构造函数的方法创造一个函数:(先创建一个空的对象,在手动添加属性和方法);

  var person = {} ;   //或者:var person = new Object();  person.name = ‘Tom‘;
  person.setName = function(name){this.name = name};
  alert(person.name);   // 输出 Tom
  person.setName(‘Jack‘);
  alert(person.name);  //输出 Jack

     缺点:代码数量过多;

    适用于:对象的属性起始不确定;

02_使用对象字面量的方法创造函数:(创造对象的同时指定属性和方法);

 var person = {
    name: ‘Tom‘,
    setName: function(name){this.name = name;}
  }
  alert(person.name);  //输出Tom
  person.setName(‘Jack‘);
  alert(person.name);  //输出Jack

     缺点:创建多个同类对象时有重复代码;

    适用:提前知道属性值的对象;

03_工厂函数的模式创建一个人的对象;(把创造一个人的对象封装到一个工厂函数中,直接调用就可以产生大量的人);

 function createPerson(name){
    var person = {
      name: name,
      setName: function(name){this.name = name;}
    }
    return person;
  }
  var person1 = createPerson(‘Tom‘);
  alert(person1.name);  //输出Tom
  person1.setName(‘Jack‘);  
  alert(person1.name);  //输出Jack
  var person2 = creatPerson(‘Lucy‘);  //调用工厂函数创造第二个人的对象,仅调用即可;

     缺点:对象没有具体的类型,就是Object,可以与下面的方法对比;

    优点:解决了字面量方法的问题,可以大量生产对象;

4_使用自定义构造函数的方法创造一个人的对象;

    function Person(name){
        this.name = name ;
        this.setName = function(){
            this.name = name;
        }
    }
    var person = new Person(‘Tom‘);
    alert(person.name);    //输出Tom
    person.setName(‘Jack‘);
    alert(person.name);    //输出Jack

    缺点:数据没有复用,会占用更多的空间;

    优点:相对于工厂函数方法,创造的对象都有各自共同的对象名:Person;

5_使用原型的方法创造一个人的对象;

function Person(){}Person.prototype.name = ‘‘;Person.prototype.setName = function(name){    this.name = name;};var person = new Person();  //创建对象时不能直接指定属性;person.name = ‘Tom‘;alert(person.name);    //输出Tomperson.setName(‘Jack‘);alert(person.name);  //输出Jack

    缺点:创建对象时不能直接指定属性,需要重新添加,非常麻烦;

     优点:解决了使用自定义构造函数的方法存在的数据不能复用的问题;

6_使用自定义构造函数和原型组合的方法创造对象,可以结合4、5方法的优点,推荐在一些较复杂的对象中使用;

function Person(name){    this.name = name}Person.prototype.setName = function(name){    this.name=name;}var person = new Person(‘Tom‘);   //输出Tomalert(person.name);alert(person.setName(‘Jack‘));  //输出Jack

    优点:结合了4、5的优点,即能复用数据,又能在创建函数的时候添加属性,同类对象的公共方法保存在父对象的原型中,方便调用;在实际中最常使用。

时间: 2024-11-07 20:38:10

01_对象的创建方法的相关文章

图形对象的创建(常用图形对象的创建方法及特殊属性)

1.图形窗口对象 MATLAB的一切图形图像的输出都是在图形窗口中完成的. 一.创建 建立图形窗口对象使用figure函数,其调用格式为:句柄变量=figure(属性名1,属性值1,属性名2,属性值2,...) MATLAB通过对属性一的操作来改变图形窗口的形式.也可以使用figure函数按MATLAB默认的属性值建立图形窗口,格式为:figure  或  句柄变量 =figure MATLAB通过figure函数建立窗口之后,还可以调用figure函数来显示该窗口,并将其设定为当前窗口,调用格

对象创建方法

创建方法1.构造函数语法(构造函数的名称通常是首字母大写) 1 var myObj = new Object(); 2 myObj['key1']='value'; 3 myObj['key2']='value'; 4 myObj.key='value'; 5 myObj.key3=' '; 6 myObj.key='value';7 myObj.functionName=function(){ statements;}; 2.字面量语法 1 var myObj = { 2 key: value

JavaScript 对象的几种创建方法

1 /** 2 * Created by 2016 on 2016/6/4. 3 */ 4 function Box(){ 5 var obj = new obj(); 6 obj.name = "Lee"; 7 obj.run = function(){ 8 return this.name+"run"; 9 }; 10 return obj; 11 } 12 var B = Box(); 13 //工厂模式创建对象 在对象中创建obj,在最后返回obj对象 14

iOS开发中单例对象的标准创建方法

//标准的单例写法 //以创建歌曲的管理者为例进行创建.+(instancetype) sharedQYSongManager { static QYSongsManager *songManager =nil; //采用GDC标准单例实现方法 static dispatch_once_t onceToken; //Executes a block object once and only once for the lifetime of an application. dispatch_onc

创建JAVASCRIPT对象3种方法

创建JAVASCRIPT对象3种方法 方法一:直接定义并创建对象实例 var obj = new Object();    //创建对象实例 //添加属性obj.num = 5;   //添加属性 obj.fn = function( cin ){ return cin;}    //添加方法 访问对象的方法:objectName.methodName() 访问对象的属性:objectName.propertyName 方法二:用函数来定义对象然后创建对象实例 function Class(){

2017-9-20C#笔记(类,访问修饰符以及访问性,静态成员和实例成员,字段,Main方法,常量,对象的创建,类的属性)

软件开发的两种主要的方式为面向对象和面向过程,面向过程的焦点主要放在指令的组合和优化上,面向对象的焦点从指令转移到组织程序的数据和功能上. 类 程序的数据和功能被组织为逻辑上相关的数据项和函数的封装集合,称之为类.类作为一个有机的不可分割的整体,对外隐藏具体实现细节,从而实现可重用和易维护等特性,同时还提供了继承功能,支持子类获得父类特征. 类是一个能存储数据并执行代码的数据结构,是逻辑相关的数据和函数的封装,通常代表真实世界中的或概念上的事物. 类包括以下内容: (1) 数据成员:数据成员用来

[JavaScript]对象创建方法

1.使用Object或对象字面量创建对象 (1)使用Object创建对象 var cat= new Object(); cat.name = "Tom"; cat.color= "blue"; (2)对象字面量创建对象 var cat = { name : "Tom", color : "blue" }; 局限性:当需要创建n个同类重复对象时,需要重复代码n次. 2.工厂模式创建对象 通过普通函数将对象的创建过程封装起来,给出

JS创建类和对象(好多方法哟!)

http://www.cnblogs.com/tiwlin/archive/2009/08/06/1540161.html 这是别人写的~~~我借来看看 JavaScript 创建类/对象的几种方式 在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量名存储和访问,换一种思路,对象是一个无序的属性集合,集合中的每一项都由名称和值组成(听起来是不是很像

Python中的对象行为与特殊方法(一)对象的创建与销毁

Python中类调用__new__()类方法来创建实例,调用__init__()方法来初始化对象,对象的销毁则调用__del__()方法. __new__()方法第一个参数为类cls,通常返回cls的一个实例,然后新实例的__init__()方法将以类似于__init__(self[, ...])的方式被调用,self是创建的新的实例,其它的参数和传递给__new__()的参数一样. 如果__new__()方法不返回cls 的实例,那么__init__()将不会被调用. 对于一个类来说: cla