摘要: 在一些函数式编程语言里面,对函数的描述不是被调用,而是被应用。而在JS里面,我们可以用Function.prototype.apply()来“应用”一个函数。// define a functionvar sayHi = function (who) { return "Hello" + (who ? ", " + who : "") + "!";};// invoke a functionsayHi(); // "Hello"sayHi('world'); // "H 阅读全文
posted @ 2013-03-04 01:20 no_particular 阅读(750) 评论(1) 推荐(0) 编辑
摘要: 前几天在看《jquery基础教程》,看到事件委托的时候,关于live()方法讲的不是很详细,就去搜了一下关于live()和delegate()的。然后在一处看到live()已经被移除了,囧,然后去看了最新的jq源码,果然被移除了,现在是1.9.1版本,不知道live()是在之前哪个版本被移除的,惭愧啊,之前都没留意。看源码发现bind()和delegate()都是由on()实现的。on()的描述如下:.on( events [, selector ] [, data ], handler(eventObject) )一个简单的事件绑定如 $('button').on(' 阅读全文
posted @ 2013-02-06 22:01 no_particular 阅读(1243) 评论(0) 推荐(0) 编辑
摘要: 闭包真的是一个谈烂掉的内容。说到闭包,自然就涉及到执行环境、变量对象以及作用域链。汤姆大叔翻译的《深入理解JavaScript系列》很好,帮我解决了一直以来似懂非懂的很多问题,包括闭包。下面就给自己总结一下。包括参考大叔的译文以及《JavaScript高级程序设计(第3版)》,一些例子引用自它们。附上大叔的链接:《深入理解JavaScript系列》一、执行环境(或“执行上下文”,意义一样)首先说下ECMAScript可执行代码的类型包括:全局代码、函数代码、eval()代码。每当执行流转到可执行代码时,即会进入一个执行环境。活动的执行环境构成一个栈:栈的底部始终是全局环境,顶部是当前活动的执行 阅读全文
posted @ 2013-01-31 23:15 no_particular 阅读(3415) 评论(3) 推荐(4) 编辑
摘要: 一、数组(1)检测数组对于一个全局作用域来说,使用instanceof操作符可以检测某个对象是不是数组:if (value instanceof Array){ // }但如果网页中存在多个框架,实际上就存在多个不同的全局作用域,从而存在多个不同版本的Array构造函数。如果从一个框架向另一个框架传入一个数组,以上操作符便不起作用。ES5新增的Array.isArray()方法可以确定某个对象到底是不是数组,而不管它是在哪个全局作用域中创建的。if (Array.isArray(value)){ // }(2)转换方法所以对象都具有toString()、valueOf(... 阅读全文
posted @ 2013-01-29 16:46 no_particular 阅读(1319) 评论(0) 推荐(0) 编辑
摘要: 题目:按下方向键时,使层向相应的方向平滑移动20像素;四个方向键的键码分别是37(左)、38(上)、39(右)和40(下)。然后我写了下面的代码:$div就是要移动的层,且它的position已在CSS中设为relative。瞄一眼好像没什么问题,运行之后发现下面的问题:1.按了向下之后,再按向上没有反应。2.按了向右之后,再按向左没有反应。后来经一网友点拨,恍然大悟:当按了向下的时候,top值为20px,这时候再按向上,从Firebug可以看出此时的bottom值也是20px,而层没有向上移动是因为浏览首先解析的是top,也就是说{top:20px;bottom:100px}和{top:20 阅读全文
posted @ 2013-01-12 22:27 no_particular 阅读(656) 评论(0) 推荐(0) 编辑
摘要: section * a {font-size:1.3em;}任何是section孙子元素,而非子元素的a标签都会被选中。至于a的父元素是什么,没有关系。 阅读全文
posted @ 2012-12-23 15:44 no_particular 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。所有浏览器都支持event事件,但支持方式不同。一、DOM中的事件对象兼容DOM的浏览器会将一个event对象传入事件处理程序中,无论使用DOM0级或DOM2级。event对象包含的部分属性或方法如下:bubbles:表明事件是否冒泡。cancelable:表明是否可以取消事件的默认行为。currentTarget:其事件处理程序当前正在处理事件的那个元素。defaulPrevented:为true表明已调用preventDefaul()。eventPhase:调用事件处理程序的阶段。1为捕获,2为 阅读全文
posted @ 2012-12-23 10:52 no_particular 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 最近在看《JavaScript高级程序设计》(第3版),一直没有记录的习惯。现在把一些东西记下来,加深下印象。(基本是照着书码出来的- -!)一、HTML事件处理程序某个元素支持的每种事件,都可以使用一个与相应事件处理程序同名的HTML特性来指定。这个特性的值应该是能够执行的JS代码。如, <input type="button" value="Click Me" onclick="alert('Clicked')" />由于这个值是JS代码,因此不能在其中使用未经转义的HTML语法字符。如& &q 阅读全文
posted @ 2012-12-19 11:12 no_particular 阅读(699) 评论(2) 推荐(1) 编辑