找到相关内容 187
javascript 异步编程2
好像有这么一句名言——"每一个优雅的接口,背后都有一个龌龊的实现"。最明显的例子,jQuery。之所以弄得这么复杂,因为它本来就是那复杂。虽然有些实现相对简明些,那是它们的兼容程度去不了那个地步。当然,世上总有例外,比如mootools,但暴露到我们眼前的接口,又不知到底是那个父类的东西,结构清晰但不明撩。我之所以说这样的话,因为异步列队真的很复杂,但我会尽可能让API简单易用。无new实例化,不
http://www.cyqdata.cn/cnblogs/article-detail-35089 
JavaScript函数参数的可修改性
一道笔试题思考而来的,通常情况下没人会在函数内部修改参数值。这里仅拿出来讨论,有三种方式可以修改。1,直接修改函数声明时的形参 function f1(a) { alert(a); a = 1;//修改形参a alert(1 === a); alert(1 === arguments[0]); } f1(10); 函数f1定义了参数a,调用时传参数10,先弹出10,修改a为1,弹出两
http://www.cyqdata.cn/cnblogs/article-detail-35063 
一个简单的JavaScript库及Demo
这个辅助函数库是《Beginning JavaScript with DOM Scripting and Ajax》一书中的示例,不过却是出自作者Christian Heilmann这位大师之手,我想很值得我们这些新手学习。>下载点击这里<   下面的node指的是文档节点,一般通过document.getElementsByTagName之类的方法获得;txt指字符串;
http://www.cyqdata.cn/cnblogs/article-detail-34972 
[翻译]JavaScript秘密花园 - hasOwnProperty,Functions,this
JavaScript Garden - 原文 JavaScript Garden - 中文翻译 hasOwnProperty 为了判断一个对象是否包含自定义属性而不是原型链上的属性, 我们需要使用继承自 Object.prototype 的 hasOwnProperty 方法。 注意: 通过判断一个属性是否 undefined 是不够的。 因为一个属性可能确实存在,只不过它的值被设置为
http://www.cyqdata.cn/cnblogs/article-detail-32741 
javascript 异步编程
这可能是个比较深的话题。何谓异步? 笼统地说,异步在javascript就是延时执行。严格来说,javascript中的异步编程能力都是由BOM与DOM提供的,如setTimeout,XMLHttpRequest,还有DOM的事件机制,还有HTML5新增加的webwork, postMessage,等等很多。这些东西都有一个共同的特点,就是拥有一个回调函数,实现控制反转。由于控制反转是更深奥的问题
http://www.cyqdata.cn/cnblogs/article-detail-32626 
JavaScript中同名标识符优先级
一,局部变量先使用后声明,不影响外部同名变量 var x = 1; // --> 外部变量x function fn(){ alert(x); // --> undefined 局部变量x先使用 var x = 2; // 后声明且赋值 } fn(); alert(x); // --> 1 第一点,函数fn内第一句输出x,x是在第二句才定义的。这在JS中是允许的,这里的
http://www.cyqdata.cn/cnblogs/article-detail-32559 
JavaScript继承方式(4)
4,继承工具函数四 /** * @param {String} className * @param {String/Function} superClass * @param {Function} classImp */ function $class(className, superClass, classImp){ if(superClass === "") superClass
http://www.cyqdata.cn/cnblogs/article-detail-32452 
JavaScript继承方式(3)
3,继承工具函数三 /** * @param {Function} subCls * @param {Function} superCls */ function extend(subCls,superCls) { subCls.prototype = new superCls(); } 父类,按原型方式写,即属性和方法都挂在原型上。 /** * 父类Person */
http://www.cyqdata.cn/cnblogs/article-detail-32432 
JavaScript继承方式(2)
这篇开始写几个工具函数实现类的扩展。每个工具函数都是针对特定的写类方式(习惯)。这篇按照构造函数方式写类:属性(字段)和方法都挂在this上。以下分别提供了个类,分别作为父类和子类。 // 父类Person function Person(nationality) { this.nationality = nationality; this.setNationality = functi
http://www.cyqdata.cn/cnblogs/article-detail-32425 
JavaScript继承方式之一
前段时间温故了下JS OO之写类方式,从这篇开始我们看看JS OO之继承方式。 面向对象的语言多数都支持继承,继承最重要的优点就是代码复用,从而构建大型软件系统。如果一个类能够重用另一个类的属性和或方法,就称之为继承。从这个角度来看看JS的继承方式。JS中继承方式与写类方式息息相关。不同的写类方式造成不同的继承方式。各种流行JS库继承方式也各不相同。从最简单的复用开始。 1、构造函数方式写类,通
http://www.cyqdata.cn/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://www.cyqdata.cn/cnblogs/article-detail-32323 
简洁优雅的JavaScript OOP风格
还是以老生常谈的User举例子,说明已在代码注释中。 function User() { /** * constant */ var MAX_AGE = 100; var MIN_AGE = 10; /** * private variable */ var
http://www.cyqdata.cn/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://www.cyqdata.cn/cnblogs/article-detail-31861 
JavaScript 函数内的arguments 对象转换为数组
函数内的arguments 对象,有人称之为“类数组”对象,因为它具有数组的一些特性:拥有length 属性、并且用数字索引存放着参数以便访问,可大家都知道其实它并不是数组。 有的时候需要将参数列表看作一数组,以便使用数组的一些方法(如concat, splice 等)进行操作,这就要想办法做一个转换,《JavaScript 语言精粹》一书中有类似这么一段操作: (fun
http://www.cyqdata.cn/cnblogs/article-detail-31856 
JavaScript的写类方式(3)
续上篇, 构造函数+原型 组装一个类;同一构造函数可以定义出多个类型 /** * $class 写类工具函数之二 * @param {Function} constructor * @param {Object} prototype */ function $class(constructor,prototype) { var c = constructor || function()
http://www.cyqdata.cn/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://www.cyqdata.cn/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://www.cyqdata.cn/cnblogs/article-detail-31798 
JavaScript中具名函数的多种调用方式(1)
前面有一篇提到了 匿名函数的多种调用方式。这篇看看具名函数的多种调用方式。 1、()   平时最常用的就是()运算符来调用/执行一个函数 // 无参函数fun1 function fun1() { alert('我被调用了'); } fun1(); // 有参函数fun2 function fun2(param) { alert(param); } fun2('我被调用了');
http://www.cyqdata.cn/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://www.cyqdata.cn/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://www.cyqdata.cn/cnblogs/article-detail-31673