摘要: (function(){ //省略前面代码 var Events = Backbone.Events = { // 根据name订阅事件,push到this._events[name] on: function(name, callback, context) { //如果name为key/value map形式(对象)或空格间隔的字符串,那么对里面的key或元素分别遍历处理(即对子元素调用on方法,根据name订阅事件) if (!eventsApi(this, 'on', name, [callback, context]) || !c... 阅读全文
posted @ 2013-09-16 18:01 icysoul 阅读(638) 评论(5) 推荐(0) 编辑
摘要: Backbone.js 是javascript 语言中 首个实现MVC设计模式的类库,API接口方法重度依赖于underscore.js,DOM选择器则依赖于jQuery.js或者zepto.js。Backbone.js 1.0.0 现在既可以支持浏览器端js代码,也可以支持服务端nodejs环境代码。为了实现这个兼容性,Backbone.js 采用了在函数表达式中传进‘this’关键词来映射宿主环境的全局变量(在browser为 ‘window’对象,在nodejs环境为'exports'):(function(){ // 初始设定 // ------------- // 保 阅读全文
posted @ 2013-09-16 15:30 icysoul 阅读(679) 评论(0) 推荐(0) 编辑
摘要: range函数说明:range([start,]stop[,step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。range示例:>>>range(5)[0,1,2,3,4]>>>range(1,5)[1,2,3,4]>>>range(0,6,2)[0,2,4]xrange函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。xrange示例:>>>xrange(5)xrange(5)>>>list(xrange(5))[0,1,2,3,4]&g 阅读全文
posted @ 2012-07-15 07:47 icysoul 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 1.原型链许多面向对象的语言都支持两种继承方式:接口继承和实现继承。接口继承只支持方法签名(即只声明方法名称,不实现具体功能),而函数中没有签名,故在 ECMAScript中无法实现接口继承;实现继承则继承实际的方法,在ECMAScript 中主要是依靠原型链来实现的。原型链的构建是通过将一个类型的实例赋值给另一个构造函数的原型实现的。这样,子类型就能够访问超类型的所有属性和方法1functionSuperType(){2this.property=true;3}45SuperType.prototype.alertName=function(){6returnthis.property;7} 阅读全文
posted @ 2012-05-28 23:58 icysoul 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 本文是对“ECMA-262-3 in detail”系列学习内容的概述与总结。如果你对ES3系列文章感兴趣,本文每一节内容均包含相应ES3系列章节的链接,以供阅读与获取更深入的解释。本文预期读者:有经验的程序员,专业人士让我们首先来考虑ECMAScript的基础——对象(object)的概念。一、对象(An Object)ECMAScript是一门高度抽象的面向对象(object-oriented)语言。虽然ECMAScript包含基本类型(primitives), 但是在需要的时候它们都会被转换为对象.对象是一个属性的集合(collection of properties),同时具有单一原型 阅读全文
posted @ 2012-03-28 16:07 icysoul 阅读(614) 评论(0) 推荐(2) 编辑
摘要: PHP文件上传的原理及实现利用php的文件函数来实现上传这段代码分为两个文件,一个为upload.html,一个是upload.phpupload.html <form enctype="multipart/form-data" action="upload.php" method="post"> <input type="hidden" name="max_file_size" value="100000"> <input name=" 阅读全文
posted @ 2012-01-13 16:16 icysoul 阅读(2762) 评论(0) 推荐(1) 编辑
摘要: What you're seeing is the difference in how Firefox and Chrome treatborder-collapse. While both browsers render the desired result correctly, their methodology for calculating it differs slightly.Firefox reads it thusly:the<table>itself hasborder-top-width: 1pxandborder-left-width: 1pxeach 阅读全文
posted @ 2011-12-27 01:02 icysoul 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 刚才在IBM DW上看到这篇《JavaScript 技巧与高级特性》,其中关于arguments.callee的部分有一个用递归来求斐波那契数列的例子,简化一下是这样的: //经典递归 functionfibonacci(n){ return(function(n){ if(n==1||n==2) return1; returnarguments.callee(n-1)+arguments.callee(n-2); })(n); } fibonacci(4);//result: 3 ... 阅读全文
posted @ 2011-12-19 18:18 icysoul 阅读(2303) 评论(1) 推荐(1) 编辑
摘要: css3对于backgrounds做了一些修改,最明显的一个就是采用设置多背景,不但添加了4个新属性,并且还对目前的属性进行了调整增强。1、多个背景图片在css3里面,你可以再一个标签元素里应用多个背景图片。代码类似与css2.0版本的写法,但引用图片之间需用“,”逗号隔开。第一个图片是定位在元素最上面的背景,后面的背景图片依次在它下面显示,如下:background-image: url(top-image.jpg), url(middle-image.jpg), url(bottom-image.jpg);2、新属性:Background Clip此讨论让我们回到文章开始提到的关于背景被b 阅读全文
posted @ 2011-12-15 20:12 icysoul 阅读(594) 评论(0) 推荐(0) 编辑
摘要: Javascript 是原型语言,但是他拥有 new 操作符,这使它看上去更像面向对象语言的类别,往往混淆程序员,从而导致一些有问题的编程模式的出现。其实,在javascript中,你完全没有必要用new Object(),而应该采用对象字面量{}的方式进行声明。类似地,采用数组字面量[]的方式来代替new Array()对数组进行声明。Javascript中的数组内部运作机制不同于java中的数组,采用类似java的语法往往也会使学习javascript的人感到困惑。更进一步来讲,不要用new Number,new String 或者new Boolean进行声明变量,这些形式也会产生不必要 阅读全文
posted @ 2011-11-16 10:47 icysoul 阅读(1560) 评论(2) 推荐(1) 编辑