`
haiyupeter
  • 浏览: 425922 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JavaScript对象定义

阅读更多
工厂方式

优点:直观,适合只创建一次的对象缺点:定义的属性和方法只能在该对象中使用
var obj = {};
obj.name = "myname";
obj.password = "mypassword";
obj.login = function(){

};


构造函数方式

优点:动态的传递参数缺点:每创建一个对象就会创建相同的方法函数对象,占用大量内存
function User1(name, password) {
	this.name = name;
	this.password = password;
	this.login = function(name,password){
		if(this.name == name && this.password == password) {
			return true;
		}else {
			return false;
		}
	};
}


原型方式

优点:每次创建对象时都是使用相同prototype中的方法,不会占用重复的内存缺点:无法动态传递构造参数
function User2() {
}

User2.prototype.name = "prototype name";
User2.prototype.password = "prototype password";
User2.prototype.login = function(name,password){
	if(this.name == name && this.password == password) {
		return true;
	} else {
		return false;
	}
};


构造及原型混合方式

优点:综合了construct及prototype方式的优点,可以动态传递构造参数,并且方法函数对象也只创建一个缺点:函数写在对象外面,不太符合面向对象的思想
function User3(name,password) {
	this.name = name;
	this.password = password;
}

User3.prototype.login = function(name,password) {
	if(this.name == name && this.password == password) {
		return true;
	} else {
		return false;
	}
};


动态原型方式

优点:将原型函数写在对象定义里面缺点:不支持继承
function User4(name,password) {
	this.name = name;
	this.password = password;
	if(typeof User4.__initialized == "undefined") {
		User4.prototype.login = function(name,password){
			if(this.name == name && this.password == password) {
				return true;
			} else {
				return false;
			}
		};
		User4.__initialized = true;
	}
}


混合工厂方式

应用场景很少,用起来像真正的构造函数

function login_util(){
    var obj = {};
    obj.name = "myname";
    obj.password = "mypassword";
    obj.login = function(){

    };
    return obj;
}

1
0
分享到:
评论

相关推荐

    Javascript对象定义的几种方式

    Javascript对象定义的几种方式

    javascript 对象定义方法 简单易学

    ### JavaScript对象定义方法详解 #### 一、引言 JavaScript是一种强大的编程语言,在Web开发领域占据主导地位。其中,对象是其核心概念之一,而如何有效地定义和使用对象则是掌握JavaScript的关键技能。本文将深入...

    javascript定义对象

    字面量语法是定义JavaScript对象最简单、最常见的方法。通过大括号`{}`来创建一个空对象,然后通过键值对来添加属性和方法。例如: ```javascript var myObject = { name: 'John Doe', age: 30, sayHello: ...

    JavaScript面对对象程序设计教程_.docx

    #### 一、JavaScript对象定义及创建方式 - **对象定义**: 在JavaScript中,对象被定义为一系列无序属性的集合,这些属性可以是基本值、其他对象或者函数。 - **对象创建方式**: - **通过`new Object()`创建**: 这种...

    javascript对象参考手册

    首先,手册的前几章会介绍JavaScript对象的基础知识,包括对象的创建、属性和方法的定义,以及对象与数据类型的关联。JavaScript中的对象是基于原型的,这意味着它们可以通过原型链共享属性和方法。此外,还会讲解...

    深入浅出JavaScript对象模型

    ### 深入浅出JavaScript对象模型 #### JavaScript对象的本质 根据ECMA262规范,ECMAScript被定义为一种基于对象的语言而非传统的面向对象语言。这意味着在JavaScript中,对象被视为存储数据的一种大型数组形式,...

    Javascript 面向对象的JavaScript进阶

    在JavaScript中,可以通过构造函数或类来创建对象,并通过定义方法来隐藏具体的实现细节。此外,ES6引入了类的概念,进一步增强了抽象的能力。 **示例代码:** ```javascript class USBDevice { constructor(name)...

    面向对象JavaScript精要(英文原版pdf)

    ### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...

    Javascript面向对象编程

    本文将详细介绍JavaScript中的面向对象编程概念和技术,包括类定义、对象创建、继承、封装等内容。 #### 二、类定义和对象创建 ##### 2.1 类定义 在JavaScript中,“类”这一概念并不像在Java或C#这样的强类型...

    JAVASCRIPT中定义对象的几种方式.pdf

    在讨论JavaScript中定义对象的几种方式之前,我们先理解一下JavaScript中的对象到底是什么。JavaScript是一种基于原型的编程语言,对象是其核心概念之一。对象可以被视为一个容器,存储各种键值对集合,键为属性名,...

    JavaScript 对象.pdf

    创建 JavaScript 对象有两种不同的方法:使用 Object 定义并创建对象的实例,使用函数来定义对象,然后创建新的对象实例。使用 Object 构造函数可以创建一个对象包装器,例如:`var o = new Object(true);`。使用...

    JavaScript对象经典小册 chm

    本小册"JavaScript对象经典小册 chm"深入探讨了JavaScript中的核心概念——对象和数组,旨在帮助开发者更好地理解和掌握这些基础知识。 一、JavaScript对象 1. 对象概述:JavaScript对象是一种数据结构,它由键值对...

    精通JavaScript对象(math对象)

    JavaScript中的Math对象的与众不同之处在于,它是一个全局对象...在使用Math对象之前,既不需要将一个变量声明为Math对象,也不需要定义一个新的Math对象,JavaScript将自动地创建好Math对象,我们只须直接使用它即可。

    javascript如何定义对象数组

    首先,我们回顾一下如何创建一个简单的JavaScript对象。在给定的例子中,`student` 是一个包含 `name`、`age` 和 `location` 属性的对象: ```javascript var student = new Object(); student.name = "Lanny"; ...

    面向对象JavaScript开发

    3. **原型对象**:`prototype`属性是构造函数的一个属性,用于定义实例的公共属性和方法。当尝试访问对象的一个属性时,JavaScript会首先在当前对象中查找,如果找不到,就会沿着原型链向上查找,直到找到为止。 4....

    JavaScript对象模型-执行模型

    JavaScript对象模型(Object Model)和执行模型是理解JavaScript工作原理的关键概念。JavaScript是一种基于原型的动态类型语言,其对象模型是其核心特性之一。本文将深入探讨JavaScript的对象模型和执行模型,以及...

Global site tag (gtag.js) - Google Analytics