听飞狐聊JavaScript设计模式系列02

  • A+
所属分类:JavaScript

本回内容介绍


上一回聊到JS数据类型,简单的过了一遍,包括9个数组新特性等,这一回来聊聊Object对象,结合数组来实战一些例子,在做题中成长,记忆会更深刻,来吧,开始咯:

1. 创建Object实例的方式有两种


(1) 使用new操作符后跟Object构造函数:

(2) 使用对象字面量表示法:

2. 对象属性的访问


对象属性访问可以用点表示法,还可以用方括号来访问对象属性,而Object的枚举循环用for in

3. 删除对象属性或方法用delete


4. 不可扩展对象


Object.preventExtensions()方法使用后,就不能再给对象添加属性或者方法了,但仍然可以修改和删除已有的成员。检测对象是否可以扩展:Object.isExtensible()

5. 密封的对象


ES5(注:ECMAScript5的简称,以后的系列都简写为ES5了哈,就备注这一次),ES5为对象定义的第二个保护级别是密封对象,Object.seal()方法用来密封,使用后除了不可扩展以外,也不能删除,但是可以修改,检测是否密封:Object.isSealed()

6. 冻结的对象


冻结的对象既不可扩展,又是密封的,使用Object.freeze()方法冻结对象。通俗点讲,就是不可增删改,只能查。检测对象是否被冻结方法:Object.isFrozen()

通过以上的讲解,相信大家对Object类型有了一定的认识,其实说白了,跟java.lang.Object一样的,Object类型是所有对象实例的基础,既然说到java了,下面就做一个简单的模拟,模拟Java的Map。

先装个逼,就当是分割线吧,好咯,开始敲代码了:

JS模拟MAP


这个例子模拟了Map的基本实现,有Java基础的盆友,一看就懂,初学面向对象的童鞋多看几遍,难度系数不大。

下一回,咱们主要聊函数,然后做做题,比如某客的笔试题,会讲到其中两道题。

 

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: