`

Javascript对象模型

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>javascript.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">    

  </head>
  	<script type="text/javascript">
  		//工厂模式创建对象
  		function showColor(){
			alert(this.color);
		}
		
		//工厂模式创建对象		
		function createCar(color){
			var tempCar = new Object();
			tempCar.color = color;
			tempCar.showColor = showColor;
			return tempCar;
		}
		
		//构造函数方式		
		function Mycar(color){
			this.color=color;
			this.showColor = function(){
				alert(this.color);
			};
		}
		
		//混合的构造函数/原型方式
		function Jeep(color){
			this.color=color;			
		}
		
		//混合的构造函数/原型方式
		Jeep.prototype.showColor = function(){
			alert(this.color);
		};
		
		//动态原型方式
		function JeepCar(color){
			this.color = color;
			//typeof JeepCar._init返回undefined
			if(typeof JeepCar._init == "undefined"){
				JeepCar.prototype.showColor = function(){
					alert(this.color);
				};
				//typeof JeepCar._init返回Boolean
				JeepCar._init = true;
				alert("create");
			}
		}
		
		//创建一个StringBuffer类处理字符串
		function StringBuffer(){
			this._string = new Array;
		}
		
		StringBuffer.prototype.append = function(date){
			this._string.push(date);
		}
		
		StringBuffer.prototype.toString = function(){
			return this._string.join("");
		}
		
		//创建新方法
		//可以给一些本地对象创建新的方法
		Number.prototype.toHexString = function(){
			return this.toString(16);//转换成16进制的
		}
		
		//创建一个方法,查找一个对角在数组中的位置
		//这样在数组就可以用这个方法了
		Array.prototype.indexOf = function(item){
			for(var i=0;i<this.length;i++){
				if(this[i]==item){
					return i;
				}
			}
			return -1;
		}
		
		//重写对象已经存在的方法
		//重写对象已经有的方法的时候可以先让原来的方法保存到另一个引用里面
		Function.prototype.toStringFor = Function.prototype.toString;
		Function.prototype.toString = function(){
			return this.toStringFor();
		}
		
  		window.onload = function(){
  			//创建Object和String对象
  			var object = new Object();  			
			var oString = new String();
			//也可以不用()直接写成new Object;
			
			//对象的废除
			oString = null;
			
			//本地对象
			//javascript的本地对象有Object,Function,Array,Date,String,Boolean
			//Number,RegExp,Error,等一些对象(还有)
			var oArray = new Array();
			oArray[0]="langhua";
			oArray[1]="boot";
			oArray[2]="text";
			//Array还有其它构造方法
			//var oArray = new Array(10);
			//var oArray = new Array("langhua","boot","text");
			//var oArray = ["langhua","boot","txt"];
			//alert(oArray.length);
			//alert(oArray.toString());//output langhua,boot,text
			//alert(oArray.valueOf());//output langhua,boot,text
			//Array的方法 join()返回String字符串
			alert(oArray.join(".."));//output langhua..boot..text
			//String也可以用split("分割正则表达示")返回一个数组
			//也可以直接split("")这样出来的就是每个字符
			//concat()方法 连结字符串,也可以连结数组
			var newArray = oArray.concat(oArray);
			//alert(newArray); output langhua,boot.text,langhua,boot,text
			
			//slice()方法
			
			var array_1 = newArray.slice(1);	//从数组的第一位到最后一件(数组的首位是0)
			var array_2 = newArray.slice(1,3);	//从数组的第一位到第二位,左闭右开(数组的首位是0)
			//alert(array_1); output boot.text,langhua,boot,text
			//alert(array_2); output boot.text
			
			//push()和pop()方法模仿Stack
			var stack = new Array;
			stack.push("langhua1");
			stack.push("langhua2");
			stack.push("langhua3");
			
			//alert(stack);
			var item = stack.pop();
			//alert(stack);
			
			//push()和shift()方法模仿队列 shift()删数数组下标为0的元素,并使下标为1的元素下标为0
			stack.shift();
			//alert(stack);
			//unshift("");
			stack.unshift("unshift"); //使数组下标为0的元素改变为传过来的值
			//alert(stack);
			//reverse()对数组进行反转,sort()对数进行排序
			var date = new Date();
			//alert(date);
			
			//内置对象
			//Math,global对象
			//global有很多方法,如isNaN(),isFinite,parseInt(),parseFloat();
			//encodeURI(),encodeURIComponent();decodeURI(),decodeURIComponent();eval();
			//alert(eval(1+2+3));
			//宿主对象
			
			//工厂模式创建对象
			//但是工厂模式的方法要写在外面,这样就不像对象了
			var car = createCar("red");
			car.showColor();
			
			//构造函数方式
			//这种方式会重复才生函数
			var mycar = new Mycar("blue");//注意是new来创建
			mycar.showColor();
			
			//混合的构造函数/原型方式
			//这种方式书上说非常的好,就用这样比较好...
			//书上说好就好吧,我没有意见的
			var myjeep_1 = new Jeep("blank1");
			myjeep_1.showColor();
			alert(myjeep_1.color);
			
			var myjeep_2 = new Jeep("blank2");
			myjeep_2.showColor();
			alert(myjeep_2.color);
			
			//还有一种用叫动态原型方式
			var JeepCars1 = new JeepCar("Jeepcar1");
			JeepCars1.showColor();
			var JeepCars2 = new JeepCar("Jeepcar2");			
			JeepCars2.showColor();
			var buff = new StringBuffer();
			buff.append("la");
			buff.append("ha");
			alert(buff.toString());
			
			//本地对象的新方法的使用
			var numb = 12;
			alert(numb.toHexString());
			
			//重写对象已经存在的方法
			//把内容给打出来
			alert(createCar.toString());
			alert(window.onload.toString());
		}  			
		
  	</script>
  <body>
   
  </body>
</html>

分享到:
评论

相关推荐

    JavaScript对象模型

    ### JavaScript对象模型详解 #### 一、概述 在JavaScript中,对象模型是其核心特性之一,它决定了数据的存储方式以及程序的运行机制。本文旨在深入解析JavaScript对象模型的关键概念,包括基本数据类型、对象、...

    深入浅出JavaScript对象模型

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

    JavaScript 对象模型-执行模型

    ### JavaScript对象模型与执行模型详解 #### 一、引言 JavaScript作为一种强大的脚本语言,在Web开发领域占据了举足轻重的地位。其独特的对象模型和执行模型为开发者提供了灵活多变的功能,使得JavaScript能够轻松...

    JavaScript对象模型-执行模型

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

    javaScript对象模型与事件处理借鉴.pdf

    JavaScript 对象模型与事件处理 JavaScript 对象模型是指在 JavaScript 中描述对象之间的层次关系的模型。该模型可以将对象分为核心部分、浏览器对象模型和文档对象模型三个组成部分。核心部分主要包括 JavaScript ...

    javaScript对象模型与事件处理资料.pdf

    - 对象模型描述了JavaScript对象间的层次结构,提供了一种接口来处理这些对象及其行为。在JavaScript中,对象模型分为核心部分和特定于环境的部分。 - **核心部分** 包括基本数据类型、运算符、表达式,以及全局...

    浅谈javascript对象模型和function对象

    本文深入浅出地探讨了JavaScript对象模型与function对象的概念与用法,并通过示例代码展示了JavaScript函数的特性。接下来将详细阐述本文提到的关键知识点。 首先,JavaScript中的函数也是对象,这意味着函数可以像...

    智能模型:JavaScript对象模型

    Javascript对象模型。 1Kb压缩 价值转换 值格式 值类型验证 价值内容验证(必填,自定义规则) 默认值 虚拟财产 现场直播活动 正确的文档^^ 体面的测试^^ 安装 安装npm软件包 npm install @jaysalvat/...

    JavaScript面向对象基础.ppt

    8.3.1 JavaScript对象模型 JavaScript有全局对象、内置对象、宿主对象等层次结构,如DOM(文档对象模型)和BOM(浏览器对象模型)。 8.3.2 客户端对象层次介绍 客户端对象层次主要涉及浏览器提供的对象,如window、...

    javascript对象参考手册

    原型链、构造函数、实例化和原型对象的概念是JavaScript对象模型的重要组成部分,手册会详细阐述这些内容。 在函数部分,手册可能涵盖函数的定义、匿名函数、箭头函数、函数参数(默认值、剩余参数和解构赋值)、...

    klassified:一个简单的基于类JavaScript对象模型

    僵化 一个简单JavaScript对象模型。 Klassified提供了一个基类object ,可以使用其subclass类类方法对其进行subclass类化,如以下示例所示: var animal = object . subclass ( function ( that , my ) { my . ...

    SharePoint-Add-in-JSOM-BasicDataOperations:使用SharePoint JavaScript对象模型(JSOM)对SharePoint加载项中的网站属性,列表和列表项执行创建,读取,更新和删除操作

    使用SharePoint JavaScript对象模型(JSOM)对SharePoint加载项中的网站属性,列表和列表项执行创建,读取,更新和删除操作。 适用于 SharePoint Online和本地SharePoint 2013及更高版本 先决条件 此示例需要满

    javascript对象

    理解JavaScript对象模型对于深入学习和使用JavaScript至关重要。 JavaScript对象基于原型(Prototype)体系,这意味着每个对象都有一个原型对象,可以通过`__proto__`属性或`Object.getPrototypeOf`方法访问。通过...

    Javascript API for ArcGIS Server对象模型图.rar

    本压缩包文件“Javascript API for ArcGIS Server对象模型图.rar”包含了关于这个API的详细对象模型图,对于理解和学习JavaScript API的使用非常有帮助。 1. **对象模型图**:对象模型图是API中各种对象、类和方法...

    typescript-fhir-types:用于FHIR标准的Typescript Javascript对象模型

    用于FHIR标准的Typescript / Javascript对象模型Model遵循FHIR R4规范。 定义是基于io-ts的接口。 有关更多详细信息,请参见。 这意味着您可以在运行时检查类型。 安装 npm i -S @ahryman40k/ts-fhir-types 或者 ...

    JavaScript的基础资料(语法,DOM对象模型等)

    本文将深入探讨JavaScript的基础语法以及DOM对象模型。 一、JavaScript基础语法 1. 变量:在JavaScript中,我们使用`var`、`let`或`const`来声明变量。`var`在全局或函数作用域内有效,而`let`和`const`则在块级...

Global site tag (gtag.js) - Google Analytics