前端开发_JavaScript_对象基础

本文深入介绍了JavaScript中的对象概念,包括对象的定义、属性访问、this关键字的使用以及对象内容的输出方法。通过实例展示了如何创建和操作对象,强调了this在不同环境中的指向,同时提供了多种对象内容的显示方式,如字符串拼接、遍历属性、使用Object.values()和JSON.stringify()。
摘要由CSDN通过智能技术生成

对象基础

1.引入

   我们之前学习了函数和事件,那么现在我们开始学习JavaScript中另一个重要的知识点:对象。

2.对象概述

   在JavaScript中,对象是一个重要的概念,在 JavaScript 中,几乎“所有事物”都是对象。所有 JavaScript 值,除了原始值,都是对象。(这里指的原始值是指JavaScript中的5种数据类型:string、number、boolean、null、undefined)。

   在程序中的对象我们可以这样理解(类似于java种的面向对象),任何事物都有其自己的特点以及功能,我们把这一个事物的特点定义为属性,然后把这一个事物的功能定义为函数。这样就组成了对象。

3.对象定义

 (1).对象定义映射

      下面我们使用现实生活中的例子来举例来定义这一个对象的例子,使用学生为例。

现实中描述代码中描述
学生姓名(属性)stuName
学生年龄(属性)stuAge
学生性别(属性)stuSex
学生专业(属性)stuMajor
学生学习(函数)

function study(){

    alert("这是学生学习的函数");

}

 (2).对象定义代码实现

<script type="text/javascript">
   var stu = {
	   stuName:'张三',
	   stuAge:20,
	   stuSex:'男',
	   stuMajor:'计算机应用技术',
	   study:function(){
			 alert("学生爱学习!");
		}
   }
</script>

4.对象属性访问

  (1).对象属性的语法格式

访问对象属性的语法格式

objectName.property 

或者是

objectName['property'] 

 (2).对象属性访问代码实现

<script type="text/javascript">
   var stu = {
     stuName:'张三',
	 stuAge:20,
	 stuSex:'男',
	 stuMajor:'计算机应用技术',
	 study:function(){
		   document.write("这是学生的学习方法。")
	  }
    }
	document.write("获取的对象信息是:" + stu.stuName + "--" + stu.stuAge + "--" 
				   + stu.stuSex + "--" + stu.stuMajor);
	 stu.study();
</script>

 5.对象属性访问中this关键字的使用

   (1).概述

        我们知道在java的面向对象中this关键字表示的是当前对象的引用,但是在JavaScript中关键字this,并不是固定的,它的指向会随着不同的代码环境指向不同的内容,主要可以分为以下几个操作:

       ①:在函数中,this表示该函数所属的对象。

<script type="text/javascript">
  var stu = {
  stuName:'张三',
  stuAge:20,
  stuSex:'男',
  stuMajor:'计算机应用技术',
  study:function(){
					
	//在对象函数上,this指向调用它所在的方法的对象,
	//那么下面的调用实际就表明this是指向stu对象
	document.write("这是学生"+this.stuName+"的学习方法。" )
  }
  }
</script>

      ②:如果说单独的使用this关键字,那么这一个时候它指向的是windows对象。

<script type="text/javascript">
   var testThis = this;
   document.write("this对象的指向是:" + testThis)
</script>

     ③:在事件中,this 指向了接收事件的 HTML 元素

 <style type="text/css">
    .box{
	    width: 250px;
		height: 100px;
		line-height: 100px;
		text-align: center;
		border: 1px solid green;
		color: red;
		font-size: 18px;
		font-family: "宋体";
	}
</style>
<div class="box" onmouseover="changeColor(this)">
			盒子1
</div>
		
<script type="text/javascript">
   function changeColor(obj){
	 obj.style.backgroundColor = "green";
   }
</script>

  6.JavaScript对象输出

    (1).概述:我们发现可以在对象中定义不同的数据类型,为了更好的知道对象中存储的数据类型,我们有时候需要输出该对象的内容。那么我们一起来看一下如何实现对象的内容输出。

    (2).javaScript对象的解决方案如下所示:

    ①:使用字符串拼接的方式现实对象的内容

<div class="box" id="box">
</div>
		
<script type="text/javascript">
   var stu = {
	   stuName: '张三',
	   stuAge: 20,
	   stuSex: '男',
	   stuMajor: '计算机应用技术',
	   study: function() {
			  document.write("test StudentInfo");
			}
	}
			
	//使用字符串拼接的方式实现对象的输出
	document.getElementById("box").innerHTML = "stuName:" + stu.stuName 
			+ "<br>" + "stuAge:" + stu.stuAge  + "<br>" + "stuSex:" + stu.stuSex 
			+ "<br>" + "stuMajor:" + stu.stuMajor
</script>

  ②:在循环中显示对象

<div class="box" id="box">
</div>
<script type="text/javascript">
   var stu = {
	   stuName: '张三',
	   stuAge: 20,
	   stuSex: '男',
	   stuMajor: '计算机应用技术',
	   study: function() {
		      document.write("test StudentInfo");
	    }
   }
			
   //使用循环现实对象中的属性信息
   var stuInfo = "";
   for(var st in stu){
	   stuInfo += stu[st] + "<br>";
   }
   document.getElementById("box").innerHTML = stuInfo;
</script>

   ③:使用 Object.values(),通过使用 Object.values(),任何 JavaScript 对象都可以被转换为数组。

<div class="box" id="box">
</div>
		
<script type="text/javascript">
   var stu = {
	   stuName: '张三',
	   stuAge: 20,
	   stuSex: '男',
	   stuMajor: '计算机应用技术',
	   study: function() {
			document.write("test StudentInfo");
	    }
   }
			
   //使用数组的形式显示对象的内容
   var arr = Object.values(stu);
   document.getElementById("box").innerHTML = arr;
</script>

   ④:使用 JSON.stringify(),任何 JavaScript 对象都可以使用 JavaScript 函数 JSON.stringify() 进行字符串化(转换为字符串)。

<div class="box" id="box">
</div>
		
<script type="text/javascript">
   var stu = {
	   stuName: '张三',
	   stuAge: 20,
	   stuSex: '男',
	   stuMajor: '计算机应用技术',
	   study: function() {
			  document.write("test StudentInfo");
		    }
	}
			
	//使用数组的形式显示对象的内容
	var str = JSON.stringify(stu);
	document.getElementById("box").innerHTML = str;
</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔笛手7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值