【JavaWweb】JavaScript_自定义对象 & 内置对象追加方法

JavaScript中自定义对象的方法

1.方式一:有参构造的方式
function 函数名称Person(形式参数){ //this代表当前对象Person
//定义属性
//this.属性= 属性值;
this.name = name ; 
this.age= age ;
定义方法
this.方法名= function(){

}

}

//创建对象
var 对象名p = new Person(实际参数) ;

2.方式二:无参构造的方式
function Person(){
}

//创建对象
var p = new Person() ;

//追加属性
p.name = "狗娃" ;
p.age = 25 ;
//追加方法
p.speak = function (){
alert("这是狗娃说话的功能...") ;
}

3.方式三:利用object 对象创建
function Object(){

}
//创建对象
var p = new Object() ;

//追加属性
p.name = "狗剩" ;
p.age = 22 ;

//追加方法
p.speak = function (){
alert("这是狗剩说话的方法...");
}


4.方式四:json 方式
//"参数名1":参数值1,"参数名2":参数值2,
var p = 
{
//追加属性
"name":"铁蛋",
"age" : 20 ,
//追加方法
"speak":function(){
alert("这是铁蛋说话的方法...") ;
}
};



练习1: 设计一个数组工具对象,例如ArrayUtil对象,该对象提供以下两个方法:
        search(array,target): 传入指定的数组和指定的值,返回指定值所在的位置
        max(array): 传入指定的数组,返回该数组中的最大值

数组工具js文件:
// JavaScript Document
/*
设计一个数组工具对象,例如ArrayUtil对象,该对象提供以下两个方法:
        	search(array,target): 传入指定的数组和指定的值,返回指定值所在的位置
            max(array): 传入指定的数组,返回该数组中的最大值
*/
//定义对象
function ArrayUtil(){
	
	//给当前对象追加方法
	this.search = function(array,target){
		//遍历数组
		for(var i = 0 ; i < array.length; i ++){
			if(array[i]==target){
				return i ;//如果找了这个元素,直接返回该索引	
			}	
		}
		
		//找不到,返回-1
		return -1 ;
	}
	
	
	//给当前对象直接求最大值的方法
	this.max = function(array){
		//定义参照物
		var max = array[0] ;
		//遍历数组,索引从1开始
		for(var i = 1 ; i < array.length ; i ++){
			//判断
			if(array[i]>max){
				max = array[i] ;
			}
		}
		
		return max ;
	}
}

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<!--链接到外部数组工具js文件-->
<script src="ArrayUtil.js"></script>
<script type="text/javascript">

	//创建一个数组
	var arr = [10,43,65,3,87] ;
	
	//创建ArrayUtil对象
	var arrayUtil = new ArrayUtil() ;
	var index = arrayUtil.search(arr,3) ;
	document.write("index:"+index+"<br/>") ;
	var max = arrayUtil.max(arr) ;
	document.write("max:"+max+"<br/>") ;
</script>

<body>
</body>
</html>

结果:
index:3
max:87






给Array对象中追加方法(原型属性prototype)

注:不能直接追加方法,Array对象中得不到search方法的源码。

使用原型属性——>prototype
1.作用:(1)每一个内置对象(Array,String,Date,Number...等等)都有原型属性(prototype)
(2)给内置对象的原型属性中添加一个方法,那么这个方法会自动的添加到对象中
(3)就是给内置对象追加方法用的

2.书写格式:
内置对象.prototype.追加的方法名 = function(){...}



练习:使用prototype 追加的方法完成练习1中的工具方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js的原型</title>

<script type="text/javascript">

	//Array对象中添加search(target),以及max()
	Array.prototype.search = function(target){
		//遍历数组:this代表当前Array对象
		for(var i = 0 ; i <this.length; i ++){
			//判断
			if(this[i]==target){
				return i ;
			}
		}
		
		//找不到,返回-1
		return -1 ;
			
	}
	
	
	//给Array对象中追加max()方法
	Array.prototype.max = function(){
		//定义参照物
		var max = this[0] ;
		for(var i =1 ; i <this.length ; i ++){
			if(this[i]>max){
				max = this[i] ;	
			}	
		}
		
		return max ;
	}
	
	
	//创建一个数组
	var arr = [10,43,65,3,87] ;
	var index = arr.search(87);
	document.write("index:"+index+"<br/>");
	
	var max = arr.max() ;
	document.write("最大值是:"+max) ;
	
</script>
</head>

<body>
</body>
</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值