(1)对象字面量

        var clock = {

    hour:12,

    minute: 10,

    second: 10,

    showTime: function(){

      alert(this.hour + ":" + this.minute + ":" + this.second);

    }

   }

(2)创建Object实例

         var clock = new Object();

   clock.hour = 12;

   clock.minute = 10;

   clock.second = 10;

   clock,showTime = function(){

     alert(this.hour + ":" + this.minute + ":" + this.second);

   }

        使用Object实例方式创建的对象,可以动态的添加或修改属性和方法。

 对象的创建模式

(1) 工厂模式

   function createClock(hour, minute, second){

     var clock = new Object();

     clock.hour = hour;

         clock.minute = minute;

     clock.second = second;

     clock.showTime = function(){

       alert(this.hour + ":" + this.minute + ":" + this.second);

     }

     return clock;

   }

         工厂模式,即给出参数得到对象,把创建对象的过程封装起来,不能识别对象的类型。

(2)构造函数模式

   function clock(hour, minute, second){

     this.hour = hour;

         this.minute = minute;

     this.second = second;

     this.showTime = function(){

       alert(this.hour + ":" + this.minute + ":" + this.second);

     }

   }

   构造函数模式创建对象时,应该注意以下几点:必须用new关键字,如果不用new关键字,此时就不会把clock当成构造函数使用了,而是当一个普通的函数,此时可能会给window全局作用域意外添加属性;由于实例话的时候,this指针会指向新的实例,每次实例化都要重建方法。

(3) 原型模式

   不同于构造函数模式,原型模式是把所有的属性和方法都写在对象的prototype对象中。此模式的缺点是:不同实例不能拥有属于各自的私有属性,所有属性都是共享的。

   function clock(hour,minute,second){
   

   }
   clock.prototype.hour=12;
   clock.prototype.minute=12;
   clock.prototype.second=12;
   clock.prototype.showTime=function(){
      alert(this.hour+":"+this.minute+":"+this.second);
   }

(4)构造-原型模式

        结合(2)和(3),此模式采用属于实例的私有属性放到构造函数中,属于实例的公共属性和方法放到对象的原型中。

   function clock(hour,minute,second){
      this.hour = hour;
      this.minute = minute;
      this.second = second;
    }
 
    clock.prototype.showTime=function(){

     alert(this.hour+":"+this.minute+":"+this.second);

   }

js创建对象的四种方式的更多相关文章

  1. JS创建对象的四种简单方式 (工厂模式和自定义构造函数创建对象的区别)

    // 对象:特指的某个事物,具有属性和方法(一组无序的属性的集合) // 特征------>属性 // 行为------>方法 // 创建对象的四种方式 1 // 1.字面量的方式,就是实 ...

  2. Java基础知识强化25:Java创建对象的四种方式

    1. Java程序中对象的创建有四种方式: ● 调用new语句创建对象,最常见的一种 ● 运用反射手段创建对象,调用java.lang.Class 或者 java.lang.reflect.Const ...

  3. 第184天:js创建对象的几种方式总结

    面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象简单 ...

  4. js创建对象的三种方式和js工厂模式创建对象

    文章地址: https://www.cnblogs.com/sandraryan/ 创建对象 创建对象的三种方式 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象 1. 调用系统的构造函数 ...

  5. js创建对象的三种方式

    <script> //创建对象的三种方式 // 1.利用对象字面量(传说中的大括号)创建对象 var obj1 = { uname: 'ash', age: 18, sex: " ...

  6. js创建对象的几种方式

    /** * 顺便重温一下对象的创建方式 * 代码简单说明问题就好 * 概念性的东西这里就不提了,只加上自己简单理解 */ /** * 工厂模式,就是将手动的创建细节封装在一个方法里, * return ...

  7. JS 创建对象的几种方式

    面向对象就是把属性和操作属性的方法放在一起作为一个相互依存的整体--对象,即拥有类的概念,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性! ECMA-262把对象定义为:"无 ...

  8. JS创建对象的几种方式整理

    javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一:通过“字面量”方式创建对象 方法:将 ...

  9. js创建对象的6种方式

    一.工厂模式 function createStudent(name,age){ var o=new Object(); o.name=name; o.age=age; o.myName=functi ...

随机推荐

  1. git入门学习

    初步学习笔记. 1.创建仓库:git init 仓库:个人理解为文件存放及版本追踪的容器,对应着一个目录,目录中包含用户的文件及git用来追踪文件版本的一系列文件. 新建并进入HelloWorld目录 ...

  2. windows8.1下android开发环境搭建(Eclipse+Android sdk+ADT+Genymotion)

    一.基本jdk.eclipse环境 二.android sdk 1.下载安装:https://developer.android.com/sdk/installing/index.html?pkg=t ...

  3. ArcEngine拓扑

    空间拓扑描述的是自然界地理对象的空间位置关系-相邻,重合,连通等,是地理对象空间属性的一部分.目前ESRI提供的数据存储方式中,Coverage和GeoDatabase能够建立拓扑,Shape格式的数 ...

  4. android studio使用中遇到的问题

    旧版和新版切换会报错(点击更正, 不影响程序使用) 2.debug正常, 打包签名程序时候报错 String index out of range: -82 java.lang.StringIndex ...

  5. Unbalanced calls to begin/end appearance transitions for **

    在自定义UITabBarController中点击视图跳转的时候,有可能就出现这个问题, 解决方法就是在自定义的UITabBarController中的视图显示消失通知方法中添加如下方法: - (vo ...

  6. Oracle存储过程中异常Exception的捕捉和处理

    Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...

  7. Oracle查询数据库中的所有表

    SELECT A.TABLE_NAME 表英文名,       A.TAB_COMMENTS 表中文名,       A.COLUMN_ID 序号,       A.COLUMN_NAME 英文名,  ...

  8. java第一天学习作业及答案

    作业一 一.选择题 1.选出在java中有效的注释声明(AD)(选两项) A.//这是注释 B.*/这是注释*/ C./这是注释 D./*这是注释*/ 2.在控制台运行一个java程序,使用的命名正确 ...

  9. X3850M2安装CertOS 7 KVM 2--Mount

    x3850 m2设备接的存储是DS8000,检查发现系统下有两块disk是IBM2107900,一块容量为215GB,另一块是4GB.原因简单,4GB是以前高可用群集时用来做仲裁盘的. 奇怪的是,每块 ...

  10. Python的平凡之路(18)

    一.JS 正则部分 test   - 判断字符串是否符合规定的正则rep = /\d+/;rep.test("asdfoiklfasdf89asdfasdf")# truerep ...