javascript——构造方法创建对象

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>js01_hello</title>
	<meta name="author" content="Administrator" />
	<script type="text/javascript">
	/**
	 * 通过构造函数的方式创建,和基于工厂的创建类似
	 * 最大的区别就是函数的名称就是类的名称,按照java的约定,第一个
	 * 字母大写。使用构造函数创建时,在函数内部是通过this关键字来
	 * 完成属性的定义
	 */
	function Person(name,age) {
		this.name = name;
		this.age = age;
		//以下方式带来的问题是所有的对象都会为该行为分配空间
		// this.say = function() {
			// alert(this.name+","+this.age);
		// }
		this.say = say;
	}
	/**
	 * 将行为设置为全局的行为,如果将所有的方法都设计为全局函数的时候
	 * 这个函数就可以被window调用,此时就破坏对象的封装性
	 * 而且如果某个对象有大 量的方法,就会导致整个代码中充斥着大量的全局函数
	 * 这样将不利于开发
	 */
	function say() {
		alert(this.name+","+this.age);
	}
	/*
	 * 通过new Person来创建对象
	 */
	var p1 = new Person("Leon",22);
	var p2 = new Person("Ada",32);
	p1.say(); p2.say();
	/**
	 * 使用构造函数的方式可以通过以下方式来检测
	 * 对象的类型
	 */
	alert(p1 instanceof Person);
	/**
	 * 使用构造函数创建所带来的第一个问题就是每一个对象中
	 * 都会存在一个方法的拷贝,如果对象的行为很多的话
	 * 空间的占用率就会大大增加
	 * 可以将函数放到全局变量中定义,这样可以让类中的行为指向
	 * 同一个函数
	 */
	alert(p1.say==p2.say);
	</script>
</head>
<body>
</body>
</html>

  

时间: 2024-09-30 19:58:26

javascript——构造方法创建对象的相关文章

JavaScript对象 创建对象 继承

创建对象  --以下内容来自JavaScript高级程序设计 工厂模式 用函数来封装以特定接口创建对象的细节. function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(this.name); }; return o; } var person1 = createPerson("Nichola

JavaScript总结--创建对象

      在JavaScript中创建对象主要就是用以下三种语句: var box=new Object(); 或var box=Object(); var box={};//字面量 function Box(){}://构造函数       现在,我们就牛刀小试,来创建一个对象 var man=new Object();//创建Object对象的实例:man man.name='Mr.Q';//man对象的name属性 man.sex=30;//man对象的name man.work=fun

JavaScript对象 创建对象(二)

组合使用构造函数和原型模式创建对象 function Person(name, age, job){ this.name = name; this.age = age; this.job = job; this.friends = ["Shelby", "Court"]; } Person.prototype = { constructor: Person, sayName : function () { alert(this.name); } }; var per

JavaScript OOP 创建对象的7种方式

我写JS代码,可以说一直都是面向过程的写法,除了一些用来封装数据的对象或者jQuery插件,可以说对原生对象了解的是少之又少.所以我拿着<JavaScript高级程序设计 第3版>恶补了一下,这里坐下总结笔记,属于菜鸟级别,大神请直接无视. 1.工厂模式 1 /** 2 * 工厂模式 3 */ 4 function createPerson(name,age,job){ 5 var o = new Object(); 6 o.name = name; 7 o.age = age; 8 o.jo

javascript之创建对象

面向对象(Object-Oriented,OO)的语言有一个特点,那就是它们都有类的概念.而javascript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或函数",我们可以把对象想象成散列集:无非就是一组名值对,其中值可以是数据或函数.下面介绍几种创建对象的按方法. 一.Object构造函数或对象字面量 var person={ name:"Bob", age:"

深入理解JavaScript中创建对象模式的演变(原型)

创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式: Object构造函数和对象字面量方法 工厂模式 自定义构造函数模式 原型模式 组合使用自定义构造函数模式和原型模式 动态原型模式.寄生构造函数模式.稳妥构造函数模式 第一部分:Object构造函数和对象字面量方法 我之前在博文<javascript中对象字面量的理解>中讲到过这两种方法,如何大家不熟悉,可以点进去看一看回顾一下.它们的优点是用来创建单个的对象非常方

javascript中创建对象和实现继承

# oo ##创建对象 1. 原型.构造函数.实例之间的关系 * 原型的construct->构造函数:调用isPrototypeOf(obj)方法可以判定和实例的关系:  * 构造函数的prototype->原型:  * 实例的__proto__ ->原型(仅在chrome,safari,Firefox中存在,而共有的是[[prototype]]):用getPrototypeOf()方法可以返回[[prototype]]的值:  * 构造函数后构造函数的‘子类’new产生一个实例,可以

HTML 学习笔记 JavaScript(创建对象)

JavaScript 有Date Array String等这样的内置对象,功能强大实用简单,但在处理一些复杂逻辑的时候,内置对象就很无力了,往往需要开发者自定义对象. 对象是什么 从JavaScript定义上讲对象是无序属性的集合,其属性可以包含基本值,对象或函数.也就是说对象是一组没有特定顺序的属性,每个属性都会映射到一个值上,是一组键值对,值可以是数据或对象. 最简单的对象 JavaScript的一对花括号{}就可以定义为一个对象,这样的写法实际上和调用Object的构造函数一样 var

javascript中创建对象的几种方式

javascript中提供了通过Object构造函数或对象字面量方式来创建单个的对象,当我们想要创建很多对象的时候,简单的通过这两种方法就会产生大量的重复.在此,我总结了几种创建对象的模式.本文是在我阅读<javascript高级程序设计>后总结而来. 1.工厂模式 这种模式通过用函数来减少代码重复,利用函数的参数作为接口,与对象的属性与方法对接. function createfactory(name,age){ var obj = new Object(); obj.name = name