6_引用类型(【三】object)

    我们目前为止大多数引用类型都是Object类型的实例,Object也是ECMAScript中使用最多的一种类型(就像java.lang.Object一样,Object类型是所有它的实例的基础)。
Object类型的创建方式、使用

//object实例的定义方式
var obj = new Object();
var obj = {}; //实例化对象
obj.name = "z3";
obj.age = 20;
obj.sex = "男";
obj["birthday"] = "1980-08-07";
obj.say = function(){
    console.info("Hello World!");
};

//访问对象的属性和方法
console.info(obj.name);
console.info(obj.age);
console.info(obj.say);
alert(obj.say);
obj.say(); 

//delete操作符 删除对象的属性和方法
delete obj.age;
delete obj.say;

console.info(obj.name);
console.info(obj.age);
console.info(obj.say);
alert(obj.say);
obj.say();  //此处会报错, TypeError: obj.say is not a function

对于Object类型应用for in 枚举循环

//遍历一个js对象,使用for in语句
for(var attr in obj){
    console.info(attr + " --> " + obj[attr]);
}

Object每个实例都会具有下列属性和方法:
Constructor: 保存着用于创建当前对象的函数

//Constructor保存对象的创建函数
alert(obj.constructor);
var arr = [];
alert(arr.constructor);

hasOwnProperty(propertyName):用于检测给定的属性在当前对象实例中(而不是原型中)是否存在。

//hasOwnProperty(propertyName) 检测给定的属性在对象中是否存在
console.info(obj.hasOwnProperty("name")); //true
console.info(obj.hasOwnProperty("aaa")); //false

isPrototypeOf(Object): 用于检查传入的对象是否是另外一个对象的原型。

//isPrototypeOf(Object)  检测原型
console.info(Object.prototype.isPrototypeOf(obj));

propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。

//propertyIsEnumerable(propertyName)检测给定的属性是否能被for in枚举出来
console.info(obj.propertyIsEnumerable("name"));

toLocaleString():返回对象的字符串表示。该字符串与执行环境的地区对应.
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔表示

console.info(obj.valueOf());
console.info(obj.toLocaleString());
console.info(obj.toString());

你可能感兴趣的:(掌握Object,了解其他引用类型对象)