20141104

1.

传统页面路由是,新到一张页面,就push一下;退回键,pop一下。

而我当前的业务,进入一张页面,先看看路由数组中,有没有该页面,有则路由删掉该页面,然后重新push进去。

这样做的原因是,防止用户回退时,看到过时的页面。

 

2.


无副作用的模块,
闭包实现的私有变量,
mixin达到的继承,
promise/A+规范的异步操作,
就能不错地组织JS代码了。

什么__proto__,prototype,constructor,原型链这些概念,不必太在意。
对象的__proto__是构造函数的protoype,
对象的construtor是构造函数,
构造函数的protoype的construtor是构造函数自身。

还有Execution context,Scope chain,Closure,小小地在意一下就好。
Execution context是函数执行的时候,生成上下文环境。
上下文环境里有,arguments,函数内部的一些声明变量,this的值,父函数的上下文环境。
因为有父函数的上下文环境,而父函数也有他自己的父函数上下文环境,所以有Scope chain。
Closure嘛,就是函数创建的时候,把父函数的上下文环境加入到Scope chain,这个行为。
优先级,原型 > 当前上下文环境 > 父级上下文环境。
http://ued.ctrip.com/blog/?p=2795

至于this这种既善变又常见的东西,还是稍微在意一下。
因为this是执行上下文环境的一个属性,所以不同地方调用的函数,会导致不同的this。
比如对象.函数的this就是对象。
html元素绑定的事件函数,这里的this就是html元素了。
需要注意的是,函数是引用传递,通过赋值,会生成新的函数,this自然就不一样了。
当然,Function的call,apply方法,可以指定this的值。
http://developer.51cto.com/art/200907/136245.htm

对象和数组,函数是引用传递,其它是值传递要知道。

常见的设计模式,工厂,订阅者。

posted @ 2014-11-04 15:17  草珊瑚  阅读(270)  评论(0编辑  收藏  举报