object类型
目前为止我们使用的大多数引用类型都是object实例,object类型也是ECMAScript中使用最多的类型,主要用于储存和传输数据。
创建方法
1 对象字面量方式
简单直接的创建object对象,在大括号里面书写对象的属性名和对应的属性值,属性和属性之间用逗号隔开,最后一个属性不需要加逗号。
var obj = {
name : "名字",
age : 18
};
2.构造函数创建
通过new关键字构建了对象的构造函数,然后在通过obj.属性添加属性;
var obj = new Object;
obj.name = "名字";
obj.age = 18;
obj.six = "男";
console.log(obj);//会返回obj这个对象
访问对象属性
- 通过打点调用:
console.log(obj.name);
- 通过方括号调用:`console.log(obj[“name”]);
对象的实例方法
- valueOf()返回当前对象对应的值;
- toString()返回当前对象对应的字符串形式,用来判断一个值的类型;
- toLocaleString()返回当前对象对应的本地字符串形式;
- hasOwnProperty()判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性;
- isPrototypeOf()判断当前对象是否为另一个对象的原型;
- propertyIsEnumerable()判断某个属性是否可枚举;
对象的作用域
作用域表示变量的适用范围;分为共有和私有作用域
- ECMAScript 中只存在一种作用域 - 公用作用域。ECMAScript 中的所有对象的所有属性和方法都是公用的。因此,定义自己的类和对象时,必须格外小心。(所有属性和方法默认都是公用的!)
- 由于缺少私有作用域,开发者就确定了一个规约,凡是在变量前面加一个下划线的变量就为私有的,例如:
obj._abc = "";
这里面的_abc属性就为私有的; - 强大的this,在对象中使用this可以简化代码,同时还可以解决许多问题,this 总是指向调用该方法的对象;