javascript——原型创建对象2

<!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">
	/**
	 *基于原型的创建虽然可以有效的完成封装,但是依然有一些问题
	 * 1、无法通过构造函数来设置属性值
	 * 2、当属性中有引用类型变量是,可能存在变量值重复
	 */
	function Person(){

	}
	Person.prototype = {
		constructor:Person,
		name:"Leon",
		age:30,
		friends:["Ada","Chris"],
		say:function() {
			alert(this.name+"["+this.friends+"]");
		}
	}
	var p1 = new Person();
	p1.name = "John";
	p1.say();//john[ada,chris]
	//会在原型中找friends,所以Mike是在原型中增加的
	p1.friends.push("Mike");//为p1增加了一个朋友
	var p2 = new Person();
	//此时原型中就多了一个Mike,这就是原型所带来的第二个问题
	p2.say();//leon ada chris mike
	</script>
</head>
<body>
</body>
</html>

  

时间: 2024-10-16 05:13:48

javascript——原型创建对象2的相关文章

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"

javascript学习笔记10(基于组合与动态原型创建对象)

基于组合与动态原型创建对象 方法一:在外部设置prototype <script type="text/javascript">/** * 为了解决原型所带来的问题,此处需要通过组合构造函数和原型来实现对象的创建 * 将属性在构造函数中定义,将方法在原型中定义 * 这种有效集合了两者的优点,是目前最为常用的一种方式 */    function Person(name,age,friends){        //属性在构造函数中定义        this.name =

javascript原型Prototype

在javaScript创建对象一文中提到过:用构造函数创建对象存在一个问题即同一构造函数的不同实例的相同方法是不一样的,所以我们用原型把构造函数中公共的属性和方法提取出来进行封装,达到让所有实例共享的目的. 接下来进一步介绍javaScript原型. 一.javaScript原型机制 1.函数与原型的关系 js中创建一个函数,就会自动创建一个prototype属性,这个属性指向函数的原型对象,并且原型对象会自动获得一个constructor(构造函数)属性,指向该函数. 举例:以前面的原型模式创

JavaScript之基础-16 JavaScript 原型与继承

一.JavaScript 原型 原型的概念 - 在JavaScript中,函数本身也是一个包含了方法和属性的对象 - 每个函数中都有一个prototype属性,该属性引用的就是原型对象 - 原型对象是保存共享属性值和共享方法的对象 为对象扩展属性 - 扩展单个对象的成员 - 扩展共享的属性值 - 内存图描述 删除属性 - 可以使用delete关键字删除对象的属性 自由属性与原型属性 - 自有属性:通过对象的引用添加的属性;其它对象可能无此属性;即使有,也是彼此独立的属性 emp1.job = '

javascript原型

在javaScript创建对象一文中提到过:用构造函数创建对象存在一个问题即同一构造函数的不同实例的相同方法是不一样的,所以我们用原型把构造函数中公共的属性和方法提取出来进行封装,达到让所有实例共享的目的. 接下来进一步介绍javaScript原型. 一.javaScript原型机制 1.函数与原型的关系 js中创建一个函数,就会自动创建一个prototype属性,这个属性指向函数的原型对象,并且原型对象会自动获得一个constructor(构造函数)属性,指向该函数. 举例:以前面的原型模式创

Javascript原型模式总结梳理

在大多数面向对象语言中,对象总是由类中实例化而来,类和对象的关系就像模具跟模件一样.Javascript中没有类的概念,就算ES6中引入的class也不过是一种语法糖,本质上还是利用原型实现.在原型编程语言中,类并不是必需的,对象不一定需要由类实例化而来,而是通过克隆另外一个对象来得到. 原型模式是用来创建对象的一种模式.在以类为中心的语言中,要创建一个对象首先要指定这个对象的类型,然后实例化一个对象.使用原型模式创建对象时不必关心对象的具体类型,而是找到一个对象,然后通过克隆来创建一个一模一样

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原型和原型链

一.对象与函数的关系 1.对象是函数创建,函数也是一种对象. 2.对象的创建方式 2.1.Object构造函数创建对象new Object(): 2.2.字面量创建对象var x = new():其本质就是new Object方式创建. 2.3.通过工厂模式创建,在方法中使用new Object():可以创建多个对象. 2.4.使用构造函数创建对象. 2.5.使用原型创建对象. 2.6.使用构造函数和原型创建对象. 2.7使用Object.create():创建对象. 3.函数.对象.原型.原型

javascript原型详解

1.原型基本特征: ps:1.原型类型与其他语言的一个类,所定义的属性,方法可以被此类产生的所有对象所共享 2.修改原型的属性或者方法,会立即生效,其派生的子类的属性,方法也将改变 例子1: function Mytest(){ } Mytest.prototype.name="jerry"; var test1=new Mytest(); alert(test1.name);//jerry Mytest.prototype.name="jack"; var tes