[Books]《Javascript权威指南》-- #6~12

本文深入讲解JavaScript中对象的创建方式,包括对象直接量、通过new关键字及使用Object.create方法。探讨了对象属性的查询、设定、删除、检测及枚举等关键操作,并介绍了属性特性的细节,最后概述了对象的三个重要属性:原型属性、类属性和可扩展性。

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

#6 对象

对象的创建*Creat

1.对象直接量

var empty={};
var point={x:0,y:0};

2.通过new创建

var o1=new Object();
var o2=new Date();

3.原型 Object.creat

除null以外,每一个js对象都有原型对象,并从原型继承属性。

var o3=Object.creat(Object.prototype);
Object.prototype.gg="good game";
//inherit: o3.gg="good game";
/*
原型链 o2 -> Date -> Object
o2继承Date & Object属性;同时可以选择性覆盖继承属性
*/

  • 对象的查询和设定
    备注:
    1. object.prototype = 0; //原型是只读属性,赋值失败
    2. defineProperty()可以对只读属性赋值
    3. 继承的只读属性,不能通过同名定义覆盖
character.hp==character[hp] //两个表达式值相同
object.undef;               //undefined,访问不存在的属性,不报错
undefined.test;null.test;   //访问不存在的对象,报类型错

  • 属性删除,检测,枚举
//属性删除
delete object.property; //delete后不是属性表达式同样返回true
delete object.prototype;//不可配置属性,类型错误或者返回false
//属性检测
"hp" in character;                      //自有和继承
character.hasOwnProperty("hp");         //自有和继承
character.propertyIsEnumerable("hp");   //自有且可枚举
character.hp!==undefined;               //属性值为undefined时,只能用in来判断
//枚举属性
for(p in o);
Object.keys();
Object.getOwnPropertyNames();

  • 属性的特性
Object.getOwnPropertyDescriptor(object,property);
//数据属性=> {value:1,writable:true,enumerable:true,configurable:false}
//存取器属性=>{get:/*fun*/,set:undefined,enumerable:true,configurable:false}
//creat & modify property => Object.defineProperty({object},{property})

  • 对象的3个属性
//原型属性
p.isPrototypeOf(o);
//类属性
object.toString();
classof(o);
//可扩展性
Object.esExtensible();      //查询
Object.preventExtentions(); //修改为不可扩展
Object.seal();Object.freeze();  //+不可配置,+只读

理想是人生的太阳 —— 德莱赛

#7 数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值