一.JavaScript 对象介绍
1.对象是什么?对象是程序中的对象,程序是用来描述现实生活世界。 如现在要写一个程序来管理大家的信息,这边就有每个人的信息(身高,体重等),这些信息都是相互独立,如果要高效管理这些信息,就要放到一个容器(对象)中进行管理。
总结:
*代表现实中的某个事物,是该事物在编程中的抽象(数据,是引用数据类型)
*多个数据的集合体(封装体)
*用于保存多个数据的容器
2.为什么要用对象?
便于对多个数据进行统一管理
3.对象的组成(属性+方法)
*属性:
*代表现实事物的状态数据
*由属性名和属性值组成
*属性名都是字符串类型,属性值是任意类型
*方法
*代表现实事物的行为数据
*方法是特别的属性(属性值是函数的时候)
const p={ name:'tom',//属性:属性值不是函数 setName:function (name){//方法:属性值为函数------这个也是属性 this.name=name; }, 'age':23,//属性名是字符串'age'或是‘setAge’ 'setAge':function(age){ this.age=age; } } console.log(p.setName('jack'),p.name);//undefined "jack" p['setAge'](34);//这是函数 console.log(p['age']);//34
4.如何访问对象内部的数据?
* .属性名:编码简单。但有时不能用
*[‘属性名’]:编码麻烦,但通用(注意使用这个设置参数时,访问也必须用这样的方式)
eg:b={'a':3}/b=['a']-----a>是字符串而不是变量
b[a]=3------>这个a 是变量
5.什么时候必须使用['属性名']的方式?
a.属性名有特殊字符(如content-type)
b.属性名不确定(属性名是一个变量)
var obj={}; //给对象添加一个属性:'content-type':'text/json' //obj.content-type='text/json';//报错了,有横杆不是合法标识名 obj['content-type']='text/json'; console.log(obj['content-type']); //要对象添加一个属性,但是属性名不确定(不确定的东西要定义成变量) var propName='my name'; var value='jack'; //obj.propName=value; //console.log(obj)//obj={propName:'jack'} //obj.propName不能用这个,因为想要的属性名是my name而不是propName,所以要用obj['propName']=value; obj[propName]=value; console.log(obj['propName']) console.log(obj)//obj={'my name':'jack'}
6.类和对象的关系
对象是从类产生的,对象是类的是一个实例(如:一个月饼 和 月饼模子)
7.验证对象是否属于某个类
对象 instanceof 类型
8.操作
(1).创建Object类型对象
创建方式: new 类名(); //对于任何类型创建对象的方式是通用的。
如: var obj = new Object();
Object类型创建对象的简写方式:var obj = {};
(2).添加或修改属性:
方式一:
对象.属性名 = 数据;
方式二:
对象[“属性名”] = 数据; //中括号中必须是字符串或存放字符串的变量
(3). 查找
方式一:
对象.属性名;
方式二:
对象[“属性名”];
(4).删除属性:
方式一:
delete 对象.属性名;//返回boolean值,true表示删除成功
方式二:
delete 对象[“属性名”];//返回boolean值,true表示删除成功
(5).检测一个对象中是否存在某个属性
对象.hasOwnProperty(“属性名”); //存在返回true,否则返回false
(6).Object类型的对象添加键值对的第二种方式:
var obj = {属性名:数据,属性名:数据,属性名:数据...};
二.列子
1.console.log(a[obj1])输出多少?
var a={}; var obj1={n:2}; var obj2={n:3} a[obj1]=4; a[obj2]=5; console.log(a[obj1])//输出5 // console.log(a)知道属性名是[object Object] ,通过这个想到对象的属性名都是字符串,对象如果转换字符串:是obj.toString(),这个是固定的方法,返回的[object Object] ,所以obj1,obj2返回是一样属性名[object Object] 。所以a[obj2]是对a[obj1]的覆盖
相关推荐:
改变JavaScript对象的rest和spread属性方法
Atas ialah kandungan terperinci JavaScript对象详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!