创建对象
1. 利用对象字面量
定义并创造一个对象
var obj = {}
2. 利用new 关键字
var person = new Object()
3. Object.create()函数创造对象
创建一个新对象,使用现有的对象来提供新创建的对象的__proto__(以第⼀个参 数作为新对象的构造函数的原型对象);⽅法还有第⼆个可选参数,是添加到新创建对象的属性;
4. 定义一个构造器,然后实例化
function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
区别
new 产⽣的实例,优先获取构造函数上的属性;构造函数上没有对应的属性,才会去原型上查找;
如果构造函数中以及原型中都没有对应的属性,就会报错;Object.create() 产⽣的对象,只会在原型上进⾏查找属性,原型上没有对应的属性,就会报错。
访问对象属性
1. 以 . 的方式访问
2. 以 [ ] 形式访问
遍历对象的方法
1. for in: 循环遍历对象自身的和继承的可枚举属性
2. Object.keys(obj): 可以将对象里的所以的键取出来放到一个数组中,返回的是所有可枚举属性
3. Object.values(obj): 可以将对象里的所以的值取出来放到一个数组中
4. Object.getOwnPropertyNames(obj): 返回的是对象所有自己的属性
var obj = {'0':'a','1':'b','2':'c'};
Object.getOwnPropertyNames(obj).forEach(function(key){ console.log(key,obj[key]); });