大家好,欢迎来到IT知识分享网。
对象
01. 对象的概念
变量是一个容器,可以存储数据。给多个容器中放入商品,就可以得到很多商品,有很多的商品就可以开超市了。 可是超市中的商品都是放在货架上归类存放的,也就需要一个更大的容器来存放很多商品。在js中也有这样的容器,用来存放很多的小容器 — 对象。
02. 对象的表现形式
var arr = []; // 数组
var obj = {};
var none = null;
这三种不同的表现形式指的都是对象。重点学习第二种,使用大括号定义的对象。
03. 对象的创建
var obj = {};
var obj = new Object();
这是两种定义对象的方式,定义的对象都是空的。要给对象中放入值,需要知道对象存储数据的格式 – 键值对。
04. 对象存数数据的格式
var obj = { 键:值, 键:值, … };
var obj = new Object({ 键:值, 键:值, … });
键值对是指在描述一个事物的时候,需要一个名字,对应一个值,
姓名:张三 // 姓名是键,张三是值 width:100px // width是键,100px是值 border=1 // border是键,1是值
定义有数据的对象,键和值之间使用冒号隔开,键值对之间使用逗号隔开:
var obj = { name:"张三", age:12 }
对象有一个特性,第一次打开的时候,只能看到Object,再次刷新页面, 会显示里面的数据:
对象中键值对的数量没有限制,可以有任意多个:
var obj = { name:"张三", age:12, height:180, weight:150 };
对象中的键都是字符串,只是正常情况下可以省略引号,但如果键中包含连字符,就不能省略引号了:
var obj = { "name":"张三", age:12, height:180, "province-name":"山东省" }; console.log(obj);
从输出的结果中能看到,书写顺序和显示的顺序是不同的,因为对象中的键值对是没有顺序的。
04. 对象存数数据的格式
语法规则:
可以不加引号 但如果键中包含连字符,就不能省略引号了
⒉.值可以是任意类型,包括:数字、字符串、布尔、对象、函数..
05.对象的访问
对象.属性名 这种方式的属性名不用加引号 或 对象[属性名] 这种方式的属性名必须加引号
06.对象的遍历
for(var attr in obj){
这里的attr代表对象属性名
obj表示这个对象
}
注意:遍历对象时,输出对象中的值,必须使用`对象[代表键的变量]`这种形式来输出。
因为,如果使用`.`来访问的话,是有歧义的:
var obj = { name:"张三", age:12, height:180 }; // 输出张三 console.log( obj.name ); var a = 'name' console.log( obj.a ); // undefined
浏览器会将`obj.a`识别为:我们正在访问obj中键为`a`的值,`.`后面的内容,表示对象中的键的名称,所以此时只能使用`[]`的形式来访问:
09.对象的方法
对象的值可以是任意类型。函数也可以当做一种数据类型来看待。也就是说对象值也可以是函数。
对象中值的类型是没有限制的,可以是任意类型。当值不是函数的时候,我们将这个键值对叫做对象的属性,当值是一个函数的时候,我们将这个键值对叫做对象的方法。
给对象添加属性:
var obj = {};
console.log(obj);
obj.name = ‘李四’;
obj[“age”] = 12;
console.log(obj);
删除对象中的键值对:
var obj = { name:"张三", age:12, height:180 }; console.log(obj); delete obj.name; console.log(obj); delete obj['age'] console.log(obj);
构造函数
01.构造函数的概念
构造函数存在的意义就是为了创建对象
其实任何函数都可以是构造函数,因为任何函数都可以使用new来创建对象 当你将一个函数使用new来创建对象的时候,这个函数就成了构造函数
02.其他构造函数
在js中,任何操作都是基于对象的,字符串、数字等类型,在js内部也是用对象来操作的,只是为了方便开发者的使用习惯,所以专门提供了一些符合人类正常看法的类型。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150854.html