1.

  1. //基于已有对象扩充其属性和方法
    var object = new Object();
  2.  
  3. object.name = "zhangsan";
  4. object.sayName = function(name)
  5. {
  6. this.name = name;
  7. alert(this.name);
  8. }
  9.  
  10. object.sayName("lisi");

2.

  1. //工厂方式创建对象
  2. function get()
  3. {
  4. alert(this.username + ", " + this.password);
  5. }
  6. //让一个函数对象被多个对象所共享,而不是每一个对象拥有一个函数 对象。
  7. function createObject(username, password)
  8. {
  9. var object = new Object();
  10.  
  11. object.username = username;
  12. object.password = password;
  13.  
  14. object.get = get;
  15.  
  16. return object;
  17. }
  18.  
  19. var object = createObject("zhangsan", "123");
  20. var object2 = createObject("lisi", "456");
  21.  
  22. object.get();
  23. object2.get();

3.

  1. //构造函数方式 
    function Person()
  2. {
  3. //在执行第一行代码前,js引擎会为我们生成一个对象
  4. this.username = "zhangsan";
  5. this.password = "123";
  6.  
  7. this.getInfo = function()
  8. {
  9. alert(this.username + ", " + this.password);
  10. }
  11.  
  12. //此处有一个隐藏的return语句,用于将之前生成的对象返回
  13. }
  14.  
  15. var person = new Person();
  16. person.getInfo();

4.

  1. //如果使用原型方式对象,那么生成的所有对象会共享原型中的属性,
  2.  
  3. 这样一个对象改变了该属性也会反应到其他对象当中。
  4. Person.prototype.username = new Array();
  5. Person.prototype.password = "123";
  6.  
  7. Person.prototype.getInfo = function()
  8. {
  9. alert(this.username + ", " + this.password);
  10. }
  11.  
  12. var person = new Person();
  13. var person2 = new Person();
  14.  
  15. person.username.push("zhangsan");
  16. person.username.push("lisi");
  17. person.password = "456";
  18.  
  19. person.getInfo();
  20. person2.getInfo();

5.

  1. //使用原型+构造函数方式来定义对象
  2. //使用原型+构造函数方式来定义对象,对象之间的属性互不干扰,各
  3.  
  4. 个对象间共享同一个方法
  5. function Person()
  6. {
  7. this.username = new Array();
  8. this.password = "123";
  9. }
  10.  
  11. Person.prototype.getInfo = function()
  12. {
  13. alert(this.username + ", " + this.password);
  14. }
  15.  
  16. var p = new Person();
  17. var p2 = new Person();
  18.  
  19. p.username.push("zhangsan");
  20. p2.username.push("lisi");
  21.  
  22. p.getInfo();
  23. p2.getInfo();

6.

  1. // 动态原型方式:在构造函数中通过标志量让所有对象共享一个 方法,而每个对象拥有自己的属性。
  2. function Person()
  3. {
  4. this.username = "zhangsan";
  5. this.password = "123";
  6.  
  7. if(typeof Person.flag == "undefined")
  8. {
  9. alert("invoked");
  10.  
  11. Person.prototype.getInfo = function()
  12. {
  13. alert(this.username + ", " + this.password);
  14. }
  15.  
  16. Person.flag = true;
  17. }
  18. }
  19.  
  20. var p = new Person();
  21. var p2 = new Person();
  22.  
  23. p.getInfo();
  24. p2.getInfo();

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

  1. JavaScript 创建对象的七种方式

    转自:xxxgitone.github.io/2017/06/10/JavaScript创建对象的七种方式/ JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以 ...

  2. JavaScript创建对象的几种 方式

    //JavaScript创建对象的七种方式 //https://xxxgitone.github.io/2017/06/10/JavaScript%E5%88%9B%E5%BB%BA%E5%AF%B9 ...

  3. javascript创建对象的几种方式

    javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON:但写法有很多种,也能混合使用.主要为下面几种:1.对象字面量的方式 person={firstname ...

  4. [转载]javascript创建对象的几种方式

    原文链接:http://qingfeng825.iteye.com/blog/1935648 1. 工厂方法:能创建并返回特定类型对象的工厂函数(factory function). function ...

  5. JavaScript创建对象的6种方式

    JavaScript创建对象简单的说,无非就是使用内置对象(Object)或各种自定义对象,当然还可以用JSON,但写法有很多种,也能混合使用. 1.对象字面量的方式 person = {name : ...

  6. javascript创建对象的几种方式?

    javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON:但写法有很多种,也能混合使用. 1.对象字面量的方式 person={ firstname:" ...

  7. JavaScript创建对象的几种方式总结

    ECMA把对象定义为:无序属性的集合,其属性可以包含基本值.对象或者函数. 1. 使用Object构造函数创建对象 创建自定义对象的最简单的方式就是创建一个Object的实例,然后再为它添加属性和方法 ...

  8. Javascript 创建对象的三种方式

    function createPerson(name, qq) //工厂方式 { //在工厂里创建个对象 var obj=new Object(); obj.name=name; obj.qq=qq; ...

  9. javascript创建对象的7种方式

    /*1.工厂模式*/ function createPerson(name,age,job) { var o = new object(); o.name = name; o.age = age; o ...

随机推荐

  1. CDOJ 842 天下归晋 树状数组

    天下归晋 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/842 Descrip ...

  2. 2015 UESTC 数据结构专题D题 秋实大哥与战争 变化版本的线段树,合并区间,单点查询

    D - 秋实大哥与战争 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 D ...

  3. 安卓之service简单介绍

    一 什么是Service 二 如何使用Service 三 Service的生命周期   一 什么是Service Service,看名字就知道跟正常理解的“服务”差不多,后台运行,可交互这样的一个东西 ...

  4. JavaScript的最大函数參数长度和最大栈深度检測

    一般代码也许不会涉及最大參数长度和最大栈深度,但某些特殊场合,检測这两个參数还是有必要的.比如:用递归计算斐波那契数列的第n个值,不了解最大栈深度,难免显得肤浅.又比如:将一串charCode转成St ...

  5. Sql语句-case when then else end

    依据上面的表信息输出以下的结果: 以下是建库和表结构据: create table DeptSales ( deptID int, SubjMonth int , sales int , deptna ...

  6. easyui 后台页面,在Tab中的链接点击后添加一个新TAB的解决方法

    1.示例1 新增一个按钮 添加点击事件 onclick="self.parent.addTab('百度','http://www.baidu.com','icon-add')" 如 ...

  7. 2)Linux程序设计入门--进程介绍

    )Linux程序设计入门--进程介绍 Linux下进程的创建 前言: 这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到: 进程的概念 进程的身份 进程的创建 守护进程的创建 .进程的 ...

  8. ZentaoPMS 系统的优先级以及修改

    王颖2015/10/08 最新版本中,严重程度1.2.3.4分别代表什么意思?还有优先级中1.2.3.4分别代表什么意思? 回复 石洋洋2015/10/08 1 2 3 4 都代表不同的级别,一般是1 ...

  9. VC++多线程--进程间通信

    1.邮槽 邮槽是windows系统提供的一种单向通信的机制,邮槽能传输的数据非常小,一般在400k左右. 创建邮槽 HANDLE CreateMailslot( LPCTSTR lpName, //指 ...

  10. Echarts使用dataset数据集管理数据

    1.可以看官网api的入门例子 使用常见的对象数组的格式 option = { legend: {}, tooltip: {}, dataset: { // 这里指定了维度名的顺序,从而可以利用默认的 ...