Object 对象
一、对象
1. JavaScript的数据类型
-
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol【Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。】。
-
引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
在JavaScript中,对象是一组无序的相关属性和方法的集合。除基本类型外的数据类型均可看作对象。
二、创建对象的三种方式
2.1 利用字面量创建对象
对象字面量:就是{},包含了表达对象的属性和方法。
var obj = {
uname:'elsie',
age:18,
sex:'female',
sayHi: function(){
console.log('hi~');
}
}
- 里面的属性或方法采取键值对的形式
- 多个属性和方法之间用逗号,隔开
- 方法冒号后面跟的是一个匿名函数
调用对象的属性:
对象名.属性名
console.log(obj.uname);
对象名['属性名']
console.log(obj['uname']);
调用对象的方法:
对象名.方法()
不要忘记小括号!
obj.sayHi();
变量 vs 属性、函数 vs 方法
变量和属性
- 相同点:都是用来存储数据的
- 不同点:变量是单独声明并赋值,使用时直接写变量名,单独存在;属性寄托在对象里面,不需要声明,使用时必须
对象.属性
函数与方法
- 相同点:都是实现某种功能
- 不同点:函数是单独声明并调用 函数名()单独存在;方法在对象中,调用时用
对象.方法()
2.2 利用new Object创建对象
利用等号 = 赋值的方法来添加对象的属性和方法,每个属性和方法之间用分号结束。
// 利用 new object创建对象
var obj = new Object(); //创建一个空对象
obj.uname = 'elsie'; //通过追加进行赋值
obj.age = 18;
obj.sex = 'female';
obj.sayHi = function(){
console.log('hi~');
}
2.3 利用构造函数创建对象
一次创建一个对象,里面很多属性和方法大量相同,只能复制。将对象里面一些相同的属性和方法抽象出来封装到函数里面——构造函数。
// 构造函数的语法格式
function 构造函数名(形参){
this.属性 = 值;
this.方法 = function(){}
}
// 使用构造函数
new 构造函数名(实参);
- 构造函数名首字母大写(规范)
- 构造函数不需要 return 就可以返回结果
- 调用构造函数必须使用new关键字
- 构造函数中属性和方法前面必须添加this,指向当前对象。
利用new关键字 + 构造函数创建对象的过程也成为对象实例化
三、new 关键字
new + 构造函数可以
- 在内存中创建一个空的对象
- this指向刚刚创建的对象
- 开始执行构造函数中的代码,给这个空对象添加属性和方法
- 最后返回这个对象。
四、遍历对象属性
4.1检查对象中是否含有某属性
in
运算符
- 通过该运算符可以检查一个对象中是否含有指定的属性,返回一个布尔值
- 语法:
“属性名” in 对象
4.2 for…in
for...in
语句用于对数组或者对象的可枚举属性进行循环操作。eg.符号symbol添加的属性是不能枚举的。
for ( 变量 in 对象){
}
var obj = {
name:'elsie',
age:18,
sex:'female'
}
// 使用for in里面的变量习惯写成 k 或者 key
for (var k in obj){
console.log(k); //得到属性名
console.log(obj[k]); //得到属性值,k是变量
}