摘要:
原文:http://www.2ality.com/2012/10/proto.html本文讲一下特殊属性__proto__,通过该属性可以获取或设置一个对象的原型.想要理解这篇文章,你必须已经熟悉了JavaScript的原型继承 [1]. 1.特殊属性__proto__ECMAScript标准中规定,一个对象的内部属性[[Prototype]]指向自己的原型.在ECMAScript 5中,该属性是不能被直接读取或修改的,但是可以通过Object.getPrototypeOf()间接的读取到它.还可以使用Object.create()创建一个拥有指定原型的新对象.例如,下面的代码创建了一个对象o 阅读全文
摘要:
前两天首页上有篇文章,讲用C#生成验证码.今天又看到一篇文章,讲用python识别验证码.于是我就写了这篇文章,讲用Canvas识别验证码 我们今天要识别的是那种最最简单的验证码,只有随机颜色和随机背景,而没有随机变形,随机噪点. 为了方便试验,我从谷歌中随便搜了一个使用了这种验证码的网站,这种验证 阅读全文
摘要:
原文:http://www.2ality.com/2012/09/javascript-quine.html引用自Wikipedia:一个quine是一个计算机程序,它不接受任何输入,且唯一的输出就是自身的源代码.@cowboy (Ben Alman) 给出了一个用JavaScript写的quine程序:!function $(){console.log('!'+$+'()')}()为什么这个quine能成功运行呢? 获得源代码如果一个程序仅是由一个函数组成的,那么我们很容易获得这个函数的源代码:在大多数JavaScript引擎中,将一个函数转换成字符串就会返回 阅读全文
摘要:
原文:http://ejohn.org/blog/xpath-css-selectors最近,我做了很多工作来实现一个同时支持XPath和CSS 3的解析器,令我惊讶的是:它们俩在某些方面上非常相似,而在另一些方面上又完全不同.不同的地方有,CSS是用来配合HTML工作的,可以使用#id来根据ID获取元素,以及使用.class来根据class获取元素.这些用XPath实现的话都不会那么简洁,反过来呢,XPath可以使用..来返回到DOM树的上层节点中,还可以使用foo[bar]来获取到一个拥有bar子元素的foo元素.CSS选择器完全做不到这些,总结一下就是,和XPath比起来,CSS选择器通 阅读全文