摘要: 前面我们一共介绍了四种方法用来封装对象(工厂,构造模式,原型模式,构造+原型),并且重点对构造函数+原型模式做了一些改进,使之更加完美,那么除了这几种方法, 还有两种方式用来封装对象,还是那句话,选择适合自己的(其实每种方法都各有利弊,在我刚开始学习时总感觉就是拆东墙补西墙)。 首先来看第一种方法 阅读全文
posted @ 2016-06-02 21:14 Sakura_大表哥 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 这咋还没完没了呢?我们之前使用原型+构造函数混合模式创建对象时是这样子写的 很明显的一个问题就是,这段代码创建的对象似乎没有我们想象中那么完美,Person.prototype写在了构造函数外面,这样看起来很别扭,我们说封装,这咋没封到一块,咋还分道扬镳了? 那么我就想应该写成这样才对吧 是不是很完 阅读全文
posted @ 2016-06-02 20:35 Sakura_大表哥 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 上一节说到,我们使用原型+构造函数混合的方式创建了一个对象,这个对象很好的区分了实例对象的私有属性和它们的共享属性,代码是这样的 那么问题又来了,当我们需要在Person类的原型上添加更多的属性和方法时,就不可避免的要一遍又一遍的重写Person.prototype.XXX=XXX 很显然我们是不愿 阅读全文
posted @ 2016-06-02 13:59 Sakura_大表哥 阅读(549) 评论(0) 推荐(0) 编辑
摘要: 当我们创建一个函数时,这个函数都会有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象包含了特定类型的所有实例共享的属性和方法 就象这样 仔细观察我们可以发现,数组对象Array的prototype属性指向一个对象,而这个对象包含了很多属性和方法,其中就有我们常见的len 阅读全文
posted @ 2016-06-02 10:15 Sakura_大表哥 阅读(518) 评论(0) 推荐(2) 编辑
摘要: 由于网络原因,所以写了一半就赶紧发了... 书接上回 既然工厂模式创建的对象不属于任何类型,我们知道JavaScript中实际上是没有类(class)这个概念的,所以我们需要创建一个伪类,这就用到了构造函数模式 2.构造函数模式 所谓构造函数,就是将工厂模式改写一下,使用new关键字,模仿JavaS 阅读全文
posted @ 2016-06-01 21:06 Sakura_大表哥 阅读(179) 评论(0) 推荐(0) 编辑
摘要: ECMA-262定义的对象是:无序属性的集合,其属性可以包含基本值、对象或者函数 说白了就是把一组特定的变量和方法封装起来 那么我们先创建一个对象 实际上这种写法较为古老,所以我们可以用对象字面量的方法重写一下 这样一个对象就被创建出来了,当我们需要调用对象的某个方法,或者获取对象的某个属性时,就可 阅读全文
posted @ 2016-06-01 20:28 Sakura_大表哥 阅读(405) 评论(2) 推荐(0) 编辑
摘要: JavaScript有一句话叫做一切皆对象,这句话看起来就像权力的游戏中Valar Morghulis(凡人皆有一死)一样总有一股哲学味 怎么理解这句话呢? 这里我们用到两个运算符来检测数据的类型,分别是typeof 以及instanceof 1.typeof typeof运算符接收一个参数,将返回 阅读全文
posted @ 2016-06-01 10:28 Sakura_大表哥 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 一般情况下我们对一个DOM元素绑定事件时有三种方式 这样写是没有任何问题的(当然方法1并不可取) 但是在实际开发中我们会碰到诸如十几二十个li元素绑定事件的情况,甚至更多的元素,那么事件绑定这种给每一个元素都循环绑定的方式就会影响性能 所以我们可以利用事件冒泡的机制,使用事件委托的方法避免过多的性能 阅读全文
posted @ 2016-05-31 19:50 Sakura_大表哥 阅读(378) 评论(0) 推荐(2) 编辑
摘要: 要了解事件冒泡与事件捕获,首先要知道什么是事件流 事件流描述的是从页面中接受事件的顺序,早年根据浏览器的不同,事件流有两种完全相反的概念(IE与Netscape) 1.事件冒泡 IE中的事件流就叫做事件冒泡,即时间开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点(引用自JavaScrip 阅读全文
posted @ 2016-05-31 16:03 Sakura_大表哥 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 当我们触发了DOM上的某个事件(onclick,onmouseover等)时,会自动产生一个事件对象event,这个对象中包含着所有与事件有关的信息,包括触发事件的DOM元素,事件类型以及其他与特定事件相关的信息 所有浏览器都支持event对象,但方式有所不同 1.DOM中的事件对象 兼容DOM的浏 阅读全文
posted @ 2016-05-26 10:09 Sakura_大表哥 阅读(124) 评论(0) 推荐(0) 编辑