08 2013 档案

摘要:长久以来,小弟在做js动画的时候都是使用setTimeout和setInterval,这两个是js里的经典方法了,听过把函数放入执行队列,可以循环我们要的函数 但是这两个方法也有很大的问题,最明显的一点就是不能保证回调函数按时执行(丢失帧),导致画面效果不流畅(话说chrome这方面倒是优化的很不错,时间挺准的),现在有一个新的方法,requestAnimationFrame,这个方法的使用类似setTimeout requestId = window.requestAFrame(render);这样就会在下一帧的时候执行render方法,而且你可能注意到了,这个方法没有设置回调时间,因... 阅读全文
posted @ 2013-08-28 16:11 小斯新手 阅读(339) 评论(0) 推荐(0)
摘要:近来有想弄弄有趣的东西,3D的页面效果,自然会想到webGL,但是介于以前一直没用过,这次也算是初体验了。初体验的话总是让人有激情,但是这次让我太难受了。。。。。。 为什么呢?因为webGL的初始化太蛋疼了,入门就要比canvas麻烦很多,而且如果用原生api的话各种不会看不懂啊!!!!!。好吧,抱怨完了,写在我们如果要开始webGL之旅需要一些什么 创建一个canvas元素 获取canvas的上下文 初始化视口(viewport)创建一个或者多个包含渲染数据的数组(通常为顶点数组) 创建一个或者多个矩阵,将顶点数组变换到屏幕空间中创建一个或者多个着色器来实现绘制算法使用参数初始化着色器... 阅读全文
posted @ 2013-08-26 15:38 小斯新手 阅读(579) 评论(0) 推荐(0)
摘要:javascript内的继承分类——传统继承(classical inheritance)和现代继承(modern inheritance) 传统继承就是指类式的继承,思维方式较为贴近Java等类式面向对象语言。 1.类式继承模式#1——默认模式 默认模式就是最基本的原型链模式,通过给子构造函数的prototype添加父构造函数的实例化对象,这样就把父构造函数实例化的对象保存在prototype属性内 function Parent(name){ this.name=name||"xiaosi"; } Paren... 阅读全文
posted @ 2013-08-15 17:59 小斯新手 阅读(337) 评论(0) 推荐(0)
摘要:1.sandbox沙盒模式 沙盒模式是一种比较常见的模式,YUI就是用这种模式实现的 沙盒模式特点: 1.沙盒模式提供了一个可用于模块运行的环境,并且不会对其他模式和个人沙盒造成任何影响 2.沙盒模式和命名空间模式对比把对单个全局变量的依赖变为对应用程序的全局变量依赖 3.按需加载需要的模块,代码模块性更强 sandbox的简单实现:(ps:sandbox只是一个构造函数)function Sandbox() { //将传入的参数转化为一个数组 var args = Array.prototype.slice.call(argum... 阅读全文
posted @ 2013-08-15 11:12 小斯新手 阅读(317) 评论(0) 推荐(0)
摘要:function abcd(){ console.log(aa); //undefined console.log(aa); //not defined(报错!!) var aa=bb=cc=dd=0; console.log(aa); //0 } abcd(); 声明:本文只是自己的感悟,学习原址:http://www.cnblogs.com/TomXu/archive/2012/01/1... 阅读全文
posted @ 2013-08-09 17:54 小斯新手 阅读(196) 评论(0) 推荐(0)
摘要:1.闭包的概念 闭包是指有权访问另一个函数作用域中的变量的函数(注意:闭包是个函数),创建闭包的常见方式是在一个函数内部创建另一个函数(ps:闭包不等于匿名函数,凡是在一个函数内部创建的函数并且内部引用到了外部函数的变量的函数都可以称为闭包,实际上,javascript内的所有函数都是闭包,因为都有作用域链) 2.闭包的现象 先上一个例子: function createFunction(name){ var newFun=function(){ alert(na... 阅读全文
posted @ 2013-08-07 17:53 小斯新手 阅读(441) 评论(0) 推荐(0)
摘要:1.使用Function代替eval 在任何情况下,使用字符串去执行javascript都不是一个好主意,而使用eval更是坏的方案——你没办法去判断这个字符串执行之后是否安全,稍微好点的办法就是用闭包来执行eval或者使用Function(更直观一点)。这样如果不是恶意代码的话,尽可能减少全局变量的个数(如果是恶意代码,把结果放在window内就可以变成全局变量了,所以并没有解决实际问题) console.log(typeof un); //undefinde console.log(typeof deux); //undefinde ... 阅读全文
posted @ 2013-08-05 21:33 小斯新手 阅读(190) 评论(0) 推荐(0)