当前位置:主页 > 查看内容

JS类和对象

发布时间:2021-08-16 00:00| 位朋友查看

简介:文章目录 类 1.类的声明 2.类的使用 3.类的继承prototype 对象 自定义对象 常用对象和方法 JS事件 事件类型 5.页面加载事件 1.给合适的HTML加合适的事件 2.事件的阻断 3.超链接调用JS函数 1,2,3的代码粘贴 类 1.类的声明 function 类名形参1形参…{ this.属……

1.类的声明

function 类名(形参1,形参…){
this.属性名1=形参1;
this.属性名2=形参2;

}

// 1.类的声明
function Person(name,age){
	this.name = name
	this.age = age
	this.test = function(a){
		alert(a)
		}

2.类的使用

var 对象名=new 类名(实参1,实参2…)

// 2.类的使用
var p1 = new Person('张三',66)
var p2 = new Person('李四',18)
p2.address = '北京市'
alert(p1.name)
alert(p2.address)

注:JS类的内容相当于对象的公共内容,每个对象还可以自定义进行扩充

3.类的继承(prototype)

prototype:实现不同对象之间的数据共享

<script type="text/javascript">
			// 1.类的声明
			function Person(name,age){
				this.name = name
				this.age = age
				this.test = function(a){
					alert(a)
				}
				Person.prototype.test1 = function(a){alert('haha')}
			}
			
			// 2.类的使用
			var p1 = new Person('张三',66)
			var p2 = new Person('李四',18)
			p2.address = '北京市'
			// alert(p1.name)
			// alert(p2.address)
			alert(p1.test1 === p2.test1)//true
			alert(p1.test === p2.test)//false
</script>

作用1.实现某个类的所有子对象的方法区对象的共享,减少内存占用

			function Person(name,age){
				this.name = name
				this.age = age
				this.test = function(a){
					alert(a)
				}
				Person.prototype.test1 = function(a){alert('haha')}
				Person.prototype.user = new User()
			}
			
			var p1 = new Person('张三',66)
			
			function User(uname,pwd){
				this.uname =uname
				this.pwd = pwd
				User.prototype.testU = function(){alert('i am user')}
				
			}
			p1.user.testU()

对象

自定义对象

原因:很多时候我们没有办法预先知道一个对象应该有哪些属性,所以只能临时的创建一个对象来自定义属性存储数据。来保证数据的完成性。

// 创建一个自定义对象
			// 方式1
			var obj = Object()
			obj.name = 'zs'
			obj,age = 23
			obj.test=function(){
				alert('i am obj')
			}
			// 方式2
			var objj  ={}
			objj.name = 'ls'

			alert(objj.name)
  • 1.一般用来存储数据,不会再自定义对象中存储函数对象。
  • 2.js中的对象属性和内容是可以自定义的扩充的,不是依赖于类的声明的,类只是对象公共部分的一种声明,是为了节省代码的冗子的。

常用对象和方法

String对象

查找字符位置

  • indexOf 返回指定字符第一次出现的位置。
  • lastIndexOf 返回指定字符最后一.次出现的位置。
function testString(){
	var str = 'qwert'
	// 大小写转换
	alert(str.toUpperCase()+':'+str.toLowerCase())
	// 字符串截取
	alert(str.substr(0,1)+':'+str.substring(0,1))//substr是指定位置和长度,substring是指定位置的开始和结尾(不包含结尾)				
}

Date对象

注:获取的是客户端的时间

function testDate(){
	var d = new Date()
	alert(d)
	//操作日期和时间
	alert(d.getYear())//返回从1900到今天的年份数
	alert(d.getFullYear())//返回当前年份
	alert(d.getMonth())//返回当前月份-1
	alert(d.getDate())//返回当前日期
	alert(d.getDay())//返回当前星期。星期日=0
	alert(d.getHours()+':'+d.getMinutes()+':'+d.getSeconds())
}

Math对象

function testMath(){
	alert(Math.floor(Math.random()*9000+1000))
	alert(Math.ceil(1.23))
}

Global对象

Global对象从不直接使用,并且不能用:new运算符创建。它在Scripting引擎被初始化时创建,并立即使其方法和属性可用。

  • eval:把字符串转换为js代码执行

  • isNaN:如果值是NaN,那么isNaN 函数返回true ,否则返回false 。使用这个函数的典型情况是检查 parseInt和parsePloat方法的返回值。

还有一种办法,变量可以与它自身进行比较。如果比较的结果不等,那么它就是HaJ。这是因为HaJ是唯一与自身不等的值。

  • parseInt方法:返回与保存在nmString 中的数字值相等的整数。如果nmString 的前缀不能解释为整数,则返回HaN (而不是数字)。
    • parseInt (“abc”)//返回NalNo
    • parseInt (“12abc”)//返回12。
function testGlobal(){
	eval("var a='qwe'")
	if(isNaN(a)){
		alert('不是数字')
	}else{
		alert('是数字')
	}
}
alert(parseInt('12qwe'))//12
alert(parseInt('qwe123'))//NaN

JS事件

当行为和动作满足某种条件下,会触发事务的执行。

事件类型

  • 1.单双击事件

    • 单击:<input type="button" value="单击测试" onclick="testOnclick()"/>
    • 双击:input type="button" value="双击测试" ondblclick="testOndblclick()"/
  • 2.鼠标事件

    • onmouseover
    • onmousemove
    • onmouseout
  • 3.键盘事件

    • onkeyup
    • onkeydown
  • 4.焦点事件

    • onfocus
    • onblur
  • 5.页面加载事件

JS中的事件只有在当前HTML元素有效

一个HTML元素可以添加多个不同事件

一个事件可以监听触发多个函数的执行,但是不同的函数要使用分号隔开

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>JS事件学习</title>
		<script type="text/javascript">
			// 单双击事件
			function testOnclick(){alert('我是单击')}
			function testOndblclick(){alert('我是双击')}
			
			
			// 鼠标事件
			function testOnmouseover(){alert('我是鼠标悬停事件')}
			
			function testOnmousemove(){alert('我被移动了')}
			
			function testOnmouseout(){alert('我被移出了')}
			
			
			// 键盘事件
			function testOnkeyup(){alert('我是键盘弹起事件')}
			
			function testOnkeydown(){alert('我是键盘下压事件')}
			
			// 焦点事件
			function testOnfocus(){
				document.getElementById("showdiv").innerHTML="Helloword"
			}
			function testOnblur(){alert('我是失去焦点')}
			
			// 页面加载事件
			
			function testOnload(){alert('我是页面加载事件')}
		</script>
		<style type="text/css">
			#showdiv{
				width: 300px;
				height: 300px;
				border: solid 1px red;
			}
		</style>
	</head>
	<body onload="testOnload()">
		<hr >
		<input type="button" value="单击测试" onclick="testOnclick()"/>
		<input type="button" value="双击测试" ondblclick="testOndblclick()"/>
		<hr >
		<br><br>
		<div id="showdiv" onmouseover="testOnmouseover()" onmousemove="testOnmousemove()" onmouseout="testOnmouseover">

				
		</div>
		<hr >
		键盘事件:<input type="text" id="" value="" onkeyup="testOnkeyup()"/><br>
		键盘事件:<input type="text" id="" value="" onkeydown="testOnkeydown()"/>
		
		<hr >
		获取焦点事件:<input type="text" id="" value="" onfocus="testOnfocus()"/><br>
		失去焦点事件:<input type="text" id="" value="" onblur="testOnblur()"/><br>
	</body>
</html>

1.给合适的HTML加合适的事件

  • 1.onchange-----select下拉框
  • 2.onload--------body标签
  • 3.单双击--------用户会进行点击动作的HTML元素
  • 4.鼠标事件-----用户会进行鼠标移动操作的HTML元素
  • 5.键盘事件-----用户会进行键盘移动操作的HTML元素

注:给HTML元素添加多个事件时,注意事件的冲突(当事件触发条件包含相同的部分的时候,会产生事件的冲突)

2.事件的阻断

当事件所监听的函数将返回值返回给函数时

false:则会阻断当前事件所在的HTML标签功能

true:则继续执行当前事件所在的HTML标签功能

3.超链接调用JS函数

<a href="javascript:testHref();">调用函数</a>

1,2,3的代码粘贴

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件2</title>
		<script type="text/javascript">
			function testOnchange(){
				alert('我被改变了')
			}
			
			//单击事件
			function testOnclick(){alert('我是单击事件')}
			
			function testOndblclick(){alert('我是双击事件')}
			
			// 事件的阻断
			function testA(){
				alert('事件的阻断')
				return false
			}
			
			// 超链接调用JS函数
			function testHref(){alert('超链接调用函数')}
		</script>
	</head>
	<body>
		<hr >
		<select name="" id="" onchange="testOnchange()">
			<option value="">北京</option>
			<option value="">上海</option>
			<option value="">广州</option>
		</select>
		<hr >
		<input type="button" value="事件冲突" onclick="testOnclick()" ondblclick="testOndblclick()"/>
		
		
		<a href="https:www.baidu.com" onclick="return testA()">百度一下</a>
		
		<a href="javascript:testHref();">调用函数</a>
		
	</bod>
</html>

;原文链接:https://blog.csdn.net/qq_43710889/article/details/115915999
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:Apache+Servlet+Jsp环境设置(中) 下一篇:没有了

推荐图文


随机推荐