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

本文深入解析JavaScript中对象实例的创建、属性与方法的使用及操作,包括delete操作符的使用、for...in循环的应用,以及hasOwnProperty、isPrototypeOf、propertyIsEnumerable等方法的介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    我们目前为止大多数引用类型都是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());

转载于:https://my.oschina.net/u/2317126/blog/381264

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值