随笔分类 -  JavaScript

摘要:在《高性能JavaScript》这本书中,对“闭包如何产生内存消耗及性能消耗”这个专题做了比较清晰的解释。如下(内容摘自此书的第二章数据访问中的“闭包,作用域,和内存”)—— 1.先说标识符识别性能—— 标识符识别不是免费的,事实上没有哪种电脑操作可以不产生性能开销。在运行期上下文的作用域链中,一个标识符所处的位置越深,它的读写速度就越慢。所以,函数中局部变量的访问速度总是最快的,而全局变量通常是最慢的(优化的JavaScript引擎在某些情况下可以改变这种状况)。请记住,全局变量总是处于运行期上下文作用域链的最后一个位置,所以总是最远才能触及的。图2-4和2-5显示了作用域链上不... 阅读全文
posted @ 2013-02-22 13:55 金广国 阅读(1673) 评论(0) 推荐(0) 编辑
摘要:对于jQuery只停留在应用是可悲的,在做项目的过程,jquery源码一度成为了自己开发的瓶颈,利用了近一天的时间对其宏观上进行了彻底的分析,收获颇丰,分享于此—— 在此说明,所研究的jquery框架版本为1.7.2。 宏观而言,jQuery框架可分为3个步骤—— 1.定义jQuery变量 2.扩充jQuery变量及jQuery.fn变量(利用jQuery及jQuery.fn命名空间进行方法的填充) 3.将jQuery置于全局 其细节如下—— 1 /** 2 * 1.定义jQuery变量 3 * var jQuery = (function () { 4 * ... 阅读全文
posted @ 2012-10-31 21:49 金广国 阅读(3553) 评论(7) 推荐(5) 编辑
摘要:相信大家都知道,函数的调用模式与进入函数执行上下文的this指针有着密不可分的关系。随着调用模式的不同,this指针的指向便有所不同。随着应用的复杂、代码的累积,对于函数作用域的分析真是个头痛的问题。因此,深入理解函数调用模式对函数作用域(this指针)的影响变得至关重要。/** * 函数调用模式 * * 1>方法调用模式 * (1)当一个函数被保存为对象的一个属性时,称它为一个方法。 * (2)当一个调用表达式包含一个属性存取表达式(即一个.表达式或[subscript]下标表达式), * 那么它被当做一个方法来调用。 *... 阅读全文
posted @ 2012-10-05 20:26 金广国 阅读(292) 评论(1) 推荐(0) 编辑
摘要:本文主要从以下几个方面串烧如何优化我们的JavaScript代码—— 1>变量类型和变量声明 2>等号(==)和非等号(!=) 全等号(===)和非全等号(!==) 3>逻辑与(&&)运算和逻辑或(||)运算 4>函数声明 vs 函数表达式 5>命名空间 6>分号和空格 主要是从让代码更加简洁、更加美观的角度去思考总结在书写JavaScript代码需要注意的要点—— 1 (function($){ 2 3 var namespace = {}; 4 5 namespace.basevar = function () { 6... 阅读全文
posted @ 2012-08-28 16:59 金广国 阅读(2132) 评论(5) 推荐(1) 编辑
摘要:本篇文章,对JavaScript函数的执行流程做了细致入微的分析。话不多说,我以下面这个例子作为样例—— 1 (function ($){ 2 3 function foo() { 4 var x = 10; 5 return function bar() { 6 console.log(x); 7 }; 8 } 9 10 var f = foo();11 12 var x = 20;13 14 f(); // 结果是10而不是2015 16 })(jQuery)... 阅读全文
posted @ 2012-08-12 20:56 金广国 阅读(852) 评论(1) 推荐(0) 编辑
摘要:这里主要引用《JavaScript语言精粹》里面有关函数的理解,结合《JavaScript高级程序设计-第2版》对块级作用域的理解,联想到自己所做的项目,对模块模式作以汇总并评价。 1 /** 2 * 首先需要知道块级作用域的概念—— 3 * 1>JavaScript当中没有真正意义上的块级作用域,我们使用匿名函数进行模拟实现。 4 * 2>在块级作用域中定义的任何变量,都会在执行结束时被销毁(闭包另当别论),源于没有指向该匿名函数的引用。 5 * 3>当里面应用了闭包时,该块级作用域里的代码执行结束时,销毁的是它的作用域链,但是其活动对象仍然... 阅读全文
posted @ 2012-08-10 19:13 金广国 阅读(444) 评论(1) 推荐(0) 编辑
摘要:这里的这个例子是引用于《JavaScript高级程序设计-第2版》的第4章-函数里的例子,结合对汤姆大叔博客里对函数的理解,需要对函数的构建及执行过程作以细致的分析理解,才能对闭包作以深入的分析与应用。以下是我对闭包的理解—— 1 (function($){ 2 3 function createFunction() { 4 var result = new Array(); 5 for (var i = 0; i < 3; i++) { 6 /** 7 ... 阅读全文
posted @ 2012-08-10 16:45 金广国 阅读(358) 评论(0) 推荐(0) 编辑