对象的定义
一组键值对
var user = {
name: 'wmj',
age: 23,
sex: 'man'
};
- 对象的键是字符串,因此普通的字符串和数值可以不加引号,但是特殊的标识符需要加上引号,所以不管什么,还是加上引号为好。
- JavaScript中的对象的键名可以指向任何数据类型,包括函数(广义的对象)
var obj = {
p: function (x) {
return 2 * x;
}
};
obj.p(1) // 2
- 对象可以动态创建,不需要在定义的时候就指定属性。
对象的引用
定义一个对象,实际上是将变量指向这个对象存储的内存地址;不同的变量名指向同一个对象,那它们都是这个对象的引用,指向的都是同一个地址,修改其中一个变量,就是修改该地址指向的对象的内容,因此所有指向该地址的对象的变量都会改变,
* 表达式还是语句?
对象属性
- .属性名和[‘属性名’]都可以获取对象的属性值,数值键名不能使用.来获取属性值;[]中数值自动转成字符串,可以对数值进行计算
- 上述方法同样可以赋值
- Object.keys(obj)可以获取所有的属性,数组表示
- delete命令可以删除对象的属性
delete obj.param
并返回true - in运算符判断属性是否存在该对象中
param in obj//true - for…in循环遍历属性
with语句
with (对象) {
语句;
}
在with语句中,可以操作同一个对象的多个属性
// 例一
var obj = {
p1: 1,
p2: 2,
};
with (obj) {
p1 = 4;
p2 = 5;
}
// 等同于
obj.p1 = 4;
obj.p2 = 5;
// 例二
with (document.links[0]){
console.log(href);
console.log(title);
console.log(style);
}
// 等同于
console.log(document.links[0].href);
console.log(document.links[0].title);
console.log(document.links[0].style);
以上是对数据类型–对象学习过程中的一些笔记,记录的代码来自参考链接JavaScript 教程