javascript -- 原型对象

原型对象:

每个对象都有一个参考对象,这个参考对象称之为原型对象。原型对象有自己的属性和方法。当A是B的原型对象时,那 么B拥有A中的所有属性和方法。

原型对象的工作原理:

使用原型对象定义一个新的对象时,该对象不会立即拥有原型对象的属性和方法,在调用的时候本对象内部没有的属性和方法是才回去调用原型中的属性和方法。(动态分配).

原型对象的引用:

在javascript中每一个函数都定义了一个prototype属性用于引用原型对象。

Js代码

 1 function computer(){
 2
 3      this.name="thinkPad 500";
 4      this.factory="联想";
 5      this.price=5000;
 6      this.size=17;
 7  }
 8  /*
 9   *读取函数中的prototype,默认情况下为空
10   */
11  for( pro in computer.prototype){
12      document.write(computer.prototype,"<br>");
13  }
14  //没有继承原型对象中属性
15  var mycomputer=new computer();
16   for( pro in mycomputer){
17      document.write(pro,":",mycomputer[pro],"<br>");
18  }
19  computer.prototype.interface="VAG";
20  //添加原型对象的属性
21   for( pro in computer.prototype){
22      document.write(pro,":",computer.prototype[pro],"<br>");
23  }
24  //继承原型对象中属性
25  var mycomputer=new computer();
26   for( pro in mycomputer){
27      document.write(pro,":",mycomputer[pro],"<br>");
28  } 

 原型对象的继承

继承是通过原型对象实现

Js代码

 1 <script type="text/javascript">
 2 //定义一个工人
 3     function worker(){
 4         this.name="";
 5         this.address="";
 6     }
 7 //定义一个部门经理
 8     function manager(_dept){
 9         this.dept=_dept;
10     }
11 //定义继承关系
12     manager.prototype=new worker();
13 //创建计划部门经理
14     var jh=new manager("计划");
15     for(pro in jh){
16         document.write(pro,":",jh[pro],"<br>");
17     }
18 //当前jh有效没有改变原型对象中的值
19     jh.name="计划部门经理";
20     jh.address="计划部";
21     for(pro in jh){
22         document.write(pro,":",jh[pro],"<br>");
23     }
24 //原型对象中的值没有被修改
25     var rs=new manager(‘人事‘);
26     for(pro in rs){
27         document.write(pro,":",rs[pro],"<br>");
28     }
29 //修改原型对象中的值,将会在继承的对象中体现,如果继承类中没有覆盖
30
31 manager.prototype.address="成都市";
32 //覆盖后address的值还是原来的计划
33 for(pro in jh){
34         document.write(pro,":",jh[pro],"<br>");
35     }
36 //没有覆盖address的值是成都市
37 for(pro in rs){
38         document.write(pro,":",rs[pro],"<br>");
39 }
40
41 </script>

通过原型对象可以为所有继承对象添加属性和删除属性,所有继承对象都将统一显示。

时间: 2024-10-09 08:17:35

javascript -- 原型对象的相关文章

JavaScript 原型对象和原型链

开篇 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很复杂的东西用最简单的话语描述出来,那就说明你没有真正的理解.最近正在读<Javascript高级程序设计>,书中对原型对象和原型链的描述让我受益匪浅,下面仅用一个对比性的例子来说明. 我们经常会这么写 1 function Person () { 2 this.name = 'John'; 3 } 4 var person = new

一文带你彻底理解 JavaScript 原型对象

一.什么是原型 原型是Javascript中的继承的基础,JavaScript的继承就是基于原型的继承. 1.1 函数的原型对象 在JavaScript中,我们创建一个函数A(就是声明一个函数), 那么浏览器就会在内存中创建一个对象B,而且每个函数都默认会有一个属性 prototype 指向了这个对象( 即:prototype的属性的值是这个对象 ).这个对象B就是函数A的原型对象,简称函数的原型.这个原型对象B 默认会有一个属性 constructor 指向了这个函数A ( 意思就是说:con

JavaScript原型对象的属性和方法

前面介绍了普通对象的原型链结构,下面会先介绍一下原型对象中的属性和方法,然后介绍函数对象的原型链,最后将原型链进行整合一下. 第一部分Object.prototype的属性和方法 1 Object.prototype.toString方法 因为Object.prototype顶级对象中定义了toString方法,所以任何对象都有一个toString方法. 可以用来检测对象的类型,当然只能检测内置对象的类型,如果是自定义构造函数创建的对象的话无法准确检测出来类型. 使用方式:Object.prot

javascript原型对象

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

javascript原型对象与实例对象属性

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

javascript原型对象prototype

“我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法.” 引用类型才具有prototype属性,包含: 1.Object 2.Function 3.Array 4.Date 5.String 6.RegExp 比如: 1 var fn=new String("text"); 2 String.prototype.value="val"; 3 console.lo

javascript原型对象用字面量赋值

原型对象用字面量赋值时需要注意将constructor指回原对象. <script>     function Person(name , age){         this.name = name ;         this.age = age ;         this.say = function (){             return "name : "+ this.name + "age: "+this.age ;         

深入javascript——构造函数和原型对象

深入javascript——构造函数和原型对象 常用的几种对象创建模式 使用new关键字创建 最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = function() { console.log(this.name + "said:love you forever");

谈谈对Javascript构造函数和原型对象的理解

对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模式 使用new关键字创建最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = function