javascript 创建对象的几种方式
1.
- //基于已有对象扩充其属性和方法
var object = new Object();- object.name = "zhangsan";
- object.sayName = function(name)
- {
- this.name = name;
- alert(this.name);
- }
- object.sayName("lisi");
2.
- //工厂方式创建对象
- function get()
- {
- alert(this.username + ", " + this.password);
- }
- //让一个函数对象被多个对象所共享,而不是每一个对象拥有一个函数 对象。
- function createObject(username, password)
- {
- var object = new Object();
- object.username = username;
- object.password = password;
- object.get = get;
- return object;
- }
- var object = createObject("zhangsan", "123");
- var object2 = createObject("lisi", "456");
- object.get();
- object2.get();
3.
- //构造函数方式
function Person()- {
- //在执行第一行代码前,js引擎会为我们生成一个对象
- this.username = "zhangsan";
- this.password = "123";
- this.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- //此处有一个隐藏的return语句,用于将之前生成的对象返回
- }
- var person = new Person();
- person.getInfo();
4.
- //如果使用原型方式对象,那么生成的所有对象会共享原型中的属性,
- 这样一个对象改变了该属性也会反应到其他对象当中。
- Person.prototype.username = new Array();
- Person.prototype.password = "123";
- Person.prototype.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- var person = new Person();
- var person2 = new Person();
- person.username.push("zhangsan");
- person.username.push("lisi");
- person.password = "456";
- person.getInfo();
- person2.getInfo();
5.
- //使用原型+构造函数方式来定义对象
- //使用原型+构造函数方式来定义对象,对象之间的属性互不干扰,各
- 个对象间共享同一个方法
- function Person()
- {
- this.username = new Array();
- this.password = "123";
- }
- Person.prototype.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- var p = new Person();
- var p2 = new Person();
- p.username.push("zhangsan");
- p2.username.push("lisi");
- p.getInfo();
- p2.getInfo();
6.
- // 动态原型方式:在构造函数中通过标志量让所有对象共享一个 方法,而每个对象拥有自己的属性。
- function Person()
- {
- this.username = "zhangsan";
- this.password = "123";
- if(typeof Person.flag == "undefined")
- {
- alert("invoked");
- Person.prototype.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- Person.flag = true;
- }
- }
- var p = new Person();
- var p2 = new Person();
- p.getInfo();
- p2.getInfo();
javascript 创建对象的几种方式的更多相关文章
- JavaScript 创建对象的七种方式
转自:xxxgitone.github.io/2017/06/10/JavaScript创建对象的七种方式/ JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以 ...
- JavaScript创建对象的几种 方式
//JavaScript创建对象的七种方式 //https://xxxgitone.github.io/2017/06/10/JavaScript%E5%88%9B%E5%BB%BA%E5%AF%B9 ...
- javascript创建对象的几种方式
javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON:但写法有很多种,也能混合使用.主要为下面几种:1.对象字面量的方式 person={firstname ...
- [转载]javascript创建对象的几种方式
原文链接:http://qingfeng825.iteye.com/blog/1935648 1. 工厂方法:能创建并返回特定类型对象的工厂函数(factory function). function ...
- JavaScript创建对象的6种方式
JavaScript创建对象简单的说,无非就是使用内置对象(Object)或各种自定义对象,当然还可以用JSON,但写法有很多种,也能混合使用. 1.对象字面量的方式 person = {name : ...
- javascript创建对象的几种方式?
javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON:但写法有很多种,也能混合使用. 1.对象字面量的方式 person={ firstname:" ...
- JavaScript创建对象的几种方式总结
ECMA把对象定义为:无序属性的集合,其属性可以包含基本值.对象或者函数. 1. 使用Object构造函数创建对象 创建自定义对象的最简单的方式就是创建一个Object的实例,然后再为它添加属性和方法 ...
- Javascript 创建对象的三种方式
function createPerson(name, qq) //工厂方式 { //在工厂里创建个对象 var obj=new Object(); obj.name=name; obj.qq=qq; ...
- javascript创建对象的7种方式
/*1.工厂模式*/ function createPerson(name,age,job) { var o = new object(); o.name = name; o.age = age; o ...
随机推荐
- CDOJ 842 天下归晋 树状数组
天下归晋 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/842 Descrip ...
- 2015 UESTC 数据结构专题D题 秋实大哥与战争 变化版本的线段树,合并区间,单点查询
D - 秋实大哥与战争 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 D ...
- 安卓之service简单介绍
一 什么是Service 二 如何使用Service 三 Service的生命周期 一 什么是Service Service,看名字就知道跟正常理解的“服务”差不多,后台运行,可交互这样的一个东西 ...
- JavaScript的最大函数參数长度和最大栈深度检測
一般代码也许不会涉及最大參数长度和最大栈深度,但某些特殊场合,检測这两个參数还是有必要的.比如:用递归计算斐波那契数列的第n个值,不了解最大栈深度,难免显得肤浅.又比如:将一串charCode转成St ...
- Sql语句-case when then else end
依据上面的表信息输出以下的结果: 以下是建库和表结构据: create table DeptSales ( deptID int, SubjMonth int , sales int , deptna ...
- easyui 后台页面,在Tab中的链接点击后添加一个新TAB的解决方法
1.示例1 新增一个按钮 添加点击事件 onclick="self.parent.addTab('百度','http://www.baidu.com','icon-add')" 如 ...
- 2)Linux程序设计入门--进程介绍
)Linux程序设计入门--进程介绍 Linux下进程的创建 前言: 这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到: 进程的概念 进程的身份 进程的创建 守护进程的创建 .进程的 ...
- ZentaoPMS 系统的优先级以及修改
王颖2015/10/08 最新版本中,严重程度1.2.3.4分别代表什么意思?还有优先级中1.2.3.4分别代表什么意思? 回复 石洋洋2015/10/08 1 2 3 4 都代表不同的级别,一般是1 ...
- VC++多线程--进程间通信
1.邮槽 邮槽是windows系统提供的一种单向通信的机制,邮槽能传输的数据非常小,一般在400k左右. 创建邮槽 HANDLE CreateMailslot( LPCTSTR lpName, //指 ...
- Echarts使用dataset数据集管理数据
1.可以看官网api的入门例子 使用常见的对象数组的格式 option = { legend: {}, tooltip: {}, dataset: { // 这里指定了维度名的顺序,从而可以利用默认的 ...