1. 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的值。

  var person = new Object();
  person.name="kevin";
  person.age=31;
  alert(person.name);
  alert(person["name"])

2. 使用对象字面量的方式{}   创建一个对象(最简单,好理解,推荐使用)

  var Cat = {};//JSON

  Cat.name="kity";//添加属性并赋值
  Cat.age=2;
  Cat.sayHello=function(){
    alert("hello "+Cat.name+",今年"+Cat["age"]+"岁了");//可以使用“.”的方式访问属性,也可以使用HashMap的方式访问
  }
  Cat.sayHello();//调用对象的(方法)函数

3. 用function(函数)来模拟class (无参构造函数)

3.1  创建一个对象,相当于new一个类的实例

    function Person(){

    }
    var personOne=new Person();//定义一个function,如果有new关键字去"实例化",那么该function可以看作是一个类
    personOne.name="dylan";
    personOne.hobby="coding";
    personOne.work=function(){
      alert(personOne.name+" is coding now...");
    }

    personOne.work();

3.2 可以使用有参构造函数来实现,这样定义更方便,扩展性更强(推荐使用)

    function Pet(name,age,hobby){
      this.name=name;//this作用域:当前对象
      this.age=age;
      this.hobby=hobby;
      this.eat=function(){
        alert("我叫"+this.name+",我喜欢"+this.hobby+",也是个吃货");
      }
    }
    var maidou =new Pet("麦兜",5,"睡觉");//实例化/创建对象
    maidou.eat();//调用eat方法(函数)

4. 使用工厂方式来创建(Object关键字)

  var wcDog =new Object(); 

  wcDog.name="旺财";
  wcDog.age=3;
  wcDog.work=function(){
    alert("我是"+wcDog.name+",汪汪汪......");
  }

  wcDog.work();

5. 使用原型对象的方式  prototype关键字

  function Dog(){

  }
  Dog.prototype.name="旺财";
  Dog.prototype.eat=function(){
    alert(this.name+"是个吃货");
  }
  var wangcai =new Dog();
  wangcai.eat();

6. 混合模式(原型和构造函数)

  function Car(name,price){
    this.name=name;
    this.price=price;
  }
  Car.prototype.sell=function(){
    alert("我是"+this.name+",我现在卖"+this.price+"万元");
  }

  var camry =new Car("凯美瑞",27);
  camry.sell();

7. 动态原型的方式(可以看作是混合模式的一种特例)

  function Car(name,price){
    this.name=name;
    this.price=price;
    if(typeof Car.sell=="undefined"){
      Car.prototype.sell=function(){
        alert("我是"+this.name+",我现在卖"+this.price+"万元");
      }
    Car.sell=true;

    }

  }

  var camry =new Car("凯美瑞",27);
  camry.sell();


javascript中创建对象的几种方式的更多相关文章

  1. JavaScript中创建对象的三种方式!

    JavaScript中创建对象的三种方式! 第一种 利用对象字面量! // 创建对象的三种方式! // 1 对象字面量. var obj = { // 对象的属性和方法! name: 'lvhang' ...

  2. javascript中创建对象的几种不同方法

    javascript中创建对象的几种不同方法 方法一:最直白的方式:字面量模式创建 <script> var person={ name:"小明", age:20, s ...

  3. Java中创建对象的几种方式

    Java中创建对象的五种方式: 作为java开发者,我们每天创建很多对象,但是我们通常使用依赖注入的方式管理系统,比如:Spring去创建对象,然而这里有很多创建对象的方法:使用New关键字.使用Cl ...

  4. Java中创建对象的五种方式

    我们总是讨论没有对象就去new一个对象,创建对象的方式在我这里变成了根深蒂固的new方式创建,但是其实创建对象的方式还是有很多种的,不单单有new方式创建对象,还有使用反射机制创建对象,使用clone ...

  5. 【转】Java中创建对象的5种方式

    Java中创建对象的5种方式   作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有 ...

  6. 实现JavaScript中继承的三种方式

    在JavaScript中,继承可以通过三种手法实现原型链继承 使用apply.call方法 对象实例间的继承.     一.原型链继承 在原型链继承方面,JavaScript与java.c#等语言类似 ...

  7. javascript中构造函数的三种方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Java中创建对象的5种方式

    作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有5种创建对象的方式,下面给出它们的 ...

  9. js中创建对象的几种方式

    创建对象指创建一个object并给这个对象添加属性和方法,有以下几个方式: 最基本的: var Person={}; Person.name='tom'; Person.age='20'; Perso ...

随机推荐

  1. VB6 GDI+ 入门教程[8] Bitmap魔法(1):创建

    http://vistaswx.com/blog/article/category/tutorial/page/2 VB6 GDI+ 入门教程[8] Bitmap魔法(1):创建 2009 年 9 月 ...

  2. solr5.2.1环境搭建教程

    环境:w8.1 + solr5.2.1 + apache7.0+jdk1.7 解压:solr5.2.1 复制E:\solr-5.2.1\server\webapps 下的solr.war包到D:\ap ...

  3. (11)odoo权限机制

    -----------------更新时间:10:21 2016-09-29 星期四14:31 2016-09-28 星期三 权限对象命名修改18:06 2016-09-18 星期日11:55 201 ...

  4. JAVA 数组作业——动手动脑以及课后实验性问题

    JAVA课后作业——动手动脑 一:阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 1.源代码 // PassArray.java // ...

  5. 项目文件包含 ToolsVersion="12.0" 设置,但此工具集未知或缺失。

    项目属性(Alt+F7),再点常规,常规中有个平台工作集,把V120改成V110或者v100,然后就能正常运行了.

  6. JSON生成c#类代码小工具(转)

    原文地址: http://www.cnblogs.com/tianqiq/archive/2015/03/02/4309791.html

  7. XML中的非法字符转化成实体

    问题 如果XML有非法字符比如 "·",或者HTML标签<br/>.XML在解析的过程中就会出错.就无法正常解析,或者把xml反射成实体. 有些字符,像(<)这类 ...

  8. Checked 和 UnChecked 异常 的使用场合

    异常的概念  任何的异常都是Throwable类(为何不是接口??),并且在它之下包含两个子类Error / Exception,而Error仅在当在Java虚拟机中发生动态连接失败或其它的定位失败的 ...

  9. DB、ETL、DW、OLAP、DM、BI关系结构图

    DB.ETL.DW.OLAP.DM.BI关系结构图 在此大概用口水话简单叙述一下他们几个概念: (1)DB/Database/数据库——这里一般指的就是OLTP数据库,在线事物数据库,用来支持生产的, ...

  10. eclipse中SVN分支合并到主干

    在项目开发中,需要添加一些新的功能,但是又不想影响到其他开发人员的项目进度,所以决定使用SVN分支进行开发,分支开发完毕后再合并到主干.本文介绍如何在eclipse中合并分支到主干. 1. 要想将分支 ...