找到相关内容 200
JavaScript继承方式之一
前段时间温故了下JS OO之写类方式,从这篇开始我们看看JS OO之继承方式。 面向对象的语言多数都支持继承,继承最重要的优点就是代码复用,从而构建大型软件系统。如果一个类能够重用另一个类的属性和或方法,就称之为继承。从这个角度来看看JS的继承方式。JS中继承方式与写类方式息息相关。不同的写类方式造成不同的继承方式。各种流行JS库继承方式也各不相同。从最简单的复用开始。 1、构造函数方式写类,通
http://cyqdata.com/cnblogs/article-detail-32377 
国家统计局省份城市对照码javascript库(可实现数据对接),原创.开源LGPL
function ProvinceAndCities{var _code=[{"Code":"110000" , "Name":"北京市"}, {"Code":"110100" , "Name":"市辖区"}, {"Code":"110101" , "Name":"东城区"}, {"Code":"110102" , "Name":"西城区"}, {"Code":"110103" , "Name":"崇文区"}, {"Code
http://cyqdata.com/cnblogs/article-detail-32323 
简洁优雅的JavaScript OOP风格
还是以老生常谈的User举例子,说明已在代码注释中。 function User() { /** * constant */ var MAX_AGE = 100; var MIN_AGE = 10; /** * private variable */ var
http://cyqdata.com/cnblogs/article-detail-31869 
JavaScript的写类方式(5)
这篇我们看看各个JS库的写类方式,这也是写类系列的最后一篇。 1,Prototype的写类方式 Prototype中使用Class.create方法,如下 //类名Person var Person = Class.create(); //通过原型重写来定义Person Person.prototype = { initialize : function(name) { this.na
http://cyqdata.com/cnblogs/article-detail-31861 
将JavaScript 函数内的arguments 对象转换为数组
函数内的arguments 对象,有人称之为“类数组”对象,因为它具有数组的一些特性:拥有length 属性、并且用数字索引存放着参数以便访问,可大家都知道其实它并不是数组。 有的时候需要将参数列表看作一数组,以便使用数组的一些方法(如concat, splice 等)进行操作,这就要想办法做一个转换,《JavaScript 语言精粹》一书中有类似这么一段操作: (fun
http://cyqdata.com/cnblogs/article-detail-31856 
JavaScript的写类方式(3)
续上篇, 构造函数+原型 组装一个类;同一构造函数可以定义出多个类型 /** * $class 写类工具函数之二 * @param {Function} constructor * @param {Object} prototype */ function $class(constructor,prototype) { var c = constructor || function()
http://cyqdata.com/cnblogs/article-detail-31823 
JavaScript的写类方式(4)
工具函数如下 /** * $class 写类工具函数之三 * @param {String} className * @param {String} superClass * @param {Function} classImp */ function $class(className, superClass, classImp){ if(superClass === "") su
http://cyqdata.com/cnblogs/article-detail-31810 
JavaScript中具名函数的多种调用方式(2)
以函数中有无this来讨论。没有this时返回一个空的对象{},有this时返回一个非空对象。 下面是一个没有this的函数 // 返回值是基本类型 function fun() { return "jack"; } var c = new fun(); for (var atr in c) { alert(atr); } alert(c); //[object Object] 返回值
http://cyqdata.com/cnblogs/article-detail-31798 
JavaScript中具名函数的多种调用方式(1)
前面有一篇提到了 匿名函数的多种调用方式。这篇看看具名函数的多种调用方式。 1、()   平时最常用的就是()运算符来调用/执行一个函数 // 无参函数fun1 function fun1() { alert('我被调用了'); } fun1(); // 有参函数fun2 function fun2(param) { alert(param); } fun2('我被调用了');
http://cyqdata.com/cnblogs/article-detail-31789 
JavaScript奇技淫巧之遍历数组
正常的for循环就不提了,直接进入正题。如下: //示例1 for(var i=0,a;a=["jack","tom","lily","andy"][i++];){ console.log(a); } //示例2 var ary = ["jack","tom","lily","andy"]; for(var i=0,a;a=ary[i++];){ console.log(a); } 从F
http://cyqdata.com/cnblogs/article-detail-31710 
[原创]如何确保JavaScript的执行顺序 –之jQuery1.5.1与jQuery1.4.4的差异
1.      引言 在上一篇文章《如何确保JavaScript的执行顺序 - 之实战篇》中,我们发现jQuery.html函数在动态加载跨域JavaScript时,在Firefox和Opera中可以按照引入顺序执行,而在IE,Chrome和Safari中都不能确保执行顺序。 经过分析,我们发现jQuery.html在处理跨域静态JS文件时,并
http://cyqdata.com/cnblogs/article-detail-31673 
JavaScript奇淫技巧之遍历数组
正常的for循环就不提了,直接进入正题。如下: //示例1 for(var i=0,a;a=["jack" , "tom" , "lily" , "andy"][i++];){ console.log(a); } //示例2 var ary = ["jack" , "tom" , "lily" , "andy"]; for(var i=0,a;a=ary[i++];){ console.log(a); } 从F
http://cyqdata.com/cnblogs/article-detail-31672 
javascript 模板系统 ejs v7
本版本只要是对其易用性进一些修改,去掉两个冗余的功能。 我发现我的模块系统天生就能实现模块套嵌,因此有关子模板导入的两个操作符去掉。 对参数也做了一些简化,可简单地传入一个字符串来指定目标元素的选择器或目标文件的URL(通过url(http://)来区分)与一个参数对象,也可以像EXT那样传入一个哈希。 //dom.ejs v7 by 司徒正美 //http://www
http://cyqdata.com/cnblogs/article-detail-31637 
如何编写高质量的Javascript代码
优秀的Stoyan Stefanov在他的新书中(《Javascript Patterns》)介绍了很多编写高质量代码的技巧,比如避免使用全局变量,使用单一的var关键字,循环式预存长度等等。 这篇文章不仅仅从代码本身来考虑如何优化编码,也从代码的设计阶段来考虑,包括书写API文档,同事的review,使用JSLint。这些习惯都能帮助你编写更加高质量的、更易于理解的、可维护的代码(让你的代码在多
http://cyqdata.com/cnblogs/article-detail-31635 
Javascript1.6数组新特性和jquery的几个工具方法
JavaScript 1.6 引入了几个新的Array 方法,具体的介绍见:New in JavaScript 1.6 。这些方法已经被写进了ECMA262 V5。现代浏览器(IE9/Firefox/Safari/Chrome/Opera)都已经支持,但IE6/7/8不支持。jquery的工具方法中提供了类似的功能。1、Array.forEach()和jquery的$().each()。在数组中的
http://cyqdata.com/cnblogs/article-detail-31580 
[原创]如何确保JavaScript的执行顺序 – 之jQuery.html深度分析
上一篇:[原创]如何确保JavaScript的执行顺序 – 之实战篇 1.      引言 在上一篇文章《如何确保JavaScript的执行顺序 - 之实战篇》中,我们发现jQuery的html函数能够确保动态加载的JavaScript按照引入顺序执行。   我们先来简单回顾下HTML源代码(test2.htm): <
http://cyqdata.com/cnblogs/article-detail-31565 
Javascript变量作用域
变量的作用域指的是变量的可见性,而生命周期则(存活期)则是从另一个角度考察变量。JS中变量的作用域分为全局变量和局部变量,函数内定义的称为局部变量,函数外的称为全局变量。(“函数外的称为全局变量”是相对的,另此处讨论的前提是用var显式声明的变量,函数内不用var定义的变量默认是全局变量,当然忽略var声明变量是不赞成的)。 var glob = 4;//函数外声明全局变
http://cyqdata.com/cnblogs/article-detail-31559 
又一款 javascript 代码优化工具 UglifyJS
冒着被人骂的风险发来主页,要是我火星了。请无视我吧…… jquery 1.5 发布的时候 john resig 大神说所用的代码优化程序从Google Closure切换到UglifyJS,新工具的压缩效果非常令人满意。 UglifyJS 是一个服务端node.js的压缩程序。据说很黄很暴力…… 我测试了一下压缩率确实比
http://cyqdata.com/cnblogs/article-detail-28730 
[原创]如何确保JavaScript的执行顺序 – 之实战篇
1.     引言 我曾在文章《如何在多个页面使用同一个HTML片段 - 续》的最后提到JavaScript顺序执行的特性。虽然现代浏览器可以并行的下载JavaScript(部分浏览器),但考虑到JavaScript的依赖关系,他们的执行依然是按照引入顺序进行的。   为了更好的测试这个过程,我写了一个简单的HTTP处理程序页面 serv
http://cyqdata.com/cnblogs/article-detail-28701 
Javascript闭包演示
有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4。 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title>闭包演示</title> <style type="text/css">
http://cyqdata.com/cnblogs/article-detail-28696