(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. Android中的动画效果

    动画的种类 透明动画alphaAnimation 在代码中配置动画: findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickL ...

  2. UnityContainer 实现DI

    DI(依赖注入) 的方式有很多种: 接口注入,属性注入,构造注入等.DI主要是为了实现代码的松耦合,方便代码的维护和扩展.(其实都是扯淡). 来说说我为啥要使用DI吧.公司有个项目,需要我一个人完成( ...

  3. OC基础--继承

    继承的基本概念: 现实生活中的继承: 人类是一个基类(也称做父类),通常情况下所有人类所共同具备的特性,如有手有脚能吃能喝 按照生活常规,我们继续给人类来细分的时候,我们可以分为学生类 工人类等,学生 ...

  4. AAS代码运行-第4章

    [root@node1 aas]# ls ch02 ch03 spark--bin-hadoop2. spark--bin-hadoop2..tgz [root@node1 aas]# cd spar ...

  5. [转]显卡帝揭秘3D游戏画质特效

    显卡帝揭秘3D游戏画质特效 近几年来,大量采用最新技术制作的大型3D游戏让大部分玩家都享受到了前所未有的游戏画质体验,同时在显卡硬件方面的技术革新也日新月异.对于经常玩游戏的玩家来说,可能对游戏画质提 ...

  6. Eclipse_luna_J2EE_For_JS+tomcat8.0环境搭建、配置、开发入门

    一.所有需要的软件.插件等下载地址 J2SE的官方下载路径:http://www.oracle.com/technetwork/java/javase/downloads/index.html Ecl ...

  7. 百度前端技术学院2015JavaScript基础部分实现自己的小型jQuery

    // 实现一个简单的Query function $(selector) { ); if (firstChar == "#") { var len = selector.split ...

  8. JavaScript之全局变量和隐式全局变量

    通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的. 无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的.

  9. Java HttpGet

    String urlStr ="https://qyapi.weixin.qq.com/cgi-bin/gettoken?a=a&b=b"; URL url = null; ...

  10. mysql关于timestamp类型

    数据库设置时间字段为timestamp类型,DTO设置为java.util.Date类型.DTO设值sessionLogDTO.setLoginOutTime(new Date());用new Dat ...