对象的分类:
1.内建对象
——由ES标准中定义的对象,在任何的ES的实现中都可以使用
——比如,Math String Number Boolean Function Object....
2.宿主对象
——由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
——比如BOM DOM
3.自定义对象
——由开发人员自己创建的对象
JS对象的创建:后边的object()是对象的构造函数
var TuBoWen=new Object();
var TuBoWen={};
JS对象基本类型属性的添加:
TuBoWen.height=172;
TuBoWen.loving="打篮球、撸铁、漂亮姑娘!!";
TuBoWen.dream="像艾弗森一样突破,像基德一样传球,像吕小军一样强壮";
JS读写对象的方法:
document.write(TuBoWen.height+"</br>");
document.write(TuBoWen.loving+"</br>");
document.write(TuBoWen.dream+"</br>");
JS删除属性的方法:
delete TuBoWen.LaoSePi;
JS特殊属性名称的操作:写坑爹属性名会用的到,但是不要这么写,会被打死!!!!
var n="520";
TuBoWen[n]=520;
TuBoWen["520"]=520;
document.write(TuBoWen["520"]+"</br>");
JS检查对象中是否含有某个属性:使用 in 运算符
document.write("LaoSePi" in TuBoWen);
JS中的对象是引用数据类型:
这一点很重要,这是JS和C/C++到目前为止,我觉得差异最大的一点了,JS的数据类型中,像Number、String等类型都是基本类型,如果进行了变量名之间的赋值操作,那么两个变量会被存储在不同的空间,而对象不一样,如果进行了变量之间的赋值操作那么两个变量在同一个空间,一个变量属性的修改会牵扯到另一个变量。
1.非引用类型
var what="非引用类型在两个空间";
document.write(what+"</br>");
var how=what;
what="你看是不是?"
document.write(what+"</br>");
document.write(how+"</br>");
2.引用类型
var OtherTu=TuBoWen;
OtherTu.height=182;
document.write(TuBoWen.height);
但是注意,也仅仅是修改属性的时候会出现这种情况,但是如果整体的修改对象就不会产生类似的影响,就相当于此对象放弃了对这块地址的操作权限,和指针很相似。
OtherTu=null;
还有一点,普通类型逻辑等于判断只判断值。而引用类型还要判断地址和值,都相等了才会返回真值。
JS的对象也可以在创建对象的同时指定属性和值:
使用这种对象字面量的方法可以在创建对象时,直接指定对象中的属性
语法:var 对象名={
属性名1:属性值,
属性名2:属性值
}
记住也可以把属性名加上双引号,这种操作记住就可以了,没准有人这样写。
对象中也可以写一个属性为对象:下面这一段代码就是直接把Son对象作为外层对象的属性
var New_Placr={name:"微信小程序",garde:"能照葫芦画瓢","name_2":"单片机",garde_2:"一周内完成",Son:{hey:"我是外层对象的一个子对象"}
}
var New_Placr={name:"微信小程序",garde:"能照葫芦画瓢","name_2":"单片机",garde_2:"一周内完成"
}
document.write(New_Placr.name+"——"+New_Placr.garde+"</br>");
document.write(New_Placr.name_2+"——"+New_Placr.garde_2+"</br>");