随笔分类 -  Javascript

摘要:Html5 Canvas transform就是矩阵变换,一种坐标的变形。坐标变形的三种方式,平移translate, 缩放scale以及旋转rotate都可以通过transform做到。transform(m11, m12, m21, m22, dx, dy):这个方法必须将当前的变形矩阵乘上下面... 阅读全文
posted @ 2014-11-09 16:20 bigwhiteshark(云飞扬) 阅读(2496) 评论(0) 推荐(0) 编辑
摘要:1,考察thisvar length = 10function fn(){alert(this.length)}var obj = {length: 5,method: function(fn) {fn() // ?arguments[0]() // ?}}obj.method(fn)这里的坑主要是... 阅读全文
posted @ 2014-08-10 22:46 bigwhiteshark(云飞扬) 阅读(1149) 评论(0) 推荐(2) 编辑
摘要:下面的内容翻译自It’s time to start using JavaScript strict mode,作者Nicholas C.Zakas参与了YUI框架的开发,并撰写了多本前端技术书籍,在我看过关于JavaScript严格模式的入门介绍文章中,这篇是写得最好的。ECMAScript5中引... 阅读全文
posted @ 2014-07-28 23:15 bigwhiteshark(云飞扬) 阅读(599) 评论(0) 推荐(1) 编辑
摘要:property是指类向外提供的数据区域。而attribute则是描述对象在编译时或运行时属性的,分为固有型和用户自定义型,其中用户自定义型可以利用Reflection在运行期获取。这两者是有本质区别的。资料上说二者一个是service的属性,而另一个是interface的。第一种好象更准确,摘要如... 阅读全文
posted @ 2014-06-29 18:09 bigwhiteshark(云飞扬) 阅读(1180) 评论(0) 推荐(1) 编辑
摘要:在这篇文章中作者从《JavaScript面向对象编程指南》一书中关于 delete 的错误讲起,详细讲述了关于 delete 操作的实现, 局限以及在不同浏览器和插件(这里指 firebug)中的表现。下面翻译其中的主要部分。...书中声称“函数就像一个普通的变量那样——可以拷贝到不同变量,甚至被删... 阅读全文
posted @ 2014-06-29 17:29 bigwhiteshark(云飞扬) 阅读(551) 评论(0) 推荐(0) 编辑
摘要:1、方法定义call方法:语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])定义:调用一个对象的一个方法,以另一个对象替换当前对象。说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisO... 阅读全文
posted @ 2014-06-26 19:45 bigwhiteshark(云飞扬) 阅读(488) 评论(0) 推荐(0) 编辑
摘要:本文总结一下浏览器在 javascript 的加载方式。关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属性, defer 属性一、同步加载与异步加载的形式1. 同步加载我们平时最常使用的就是这种同步加载形式... 阅读全文
posted @ 2014-06-21 22:58 bigwhiteshark(云飞扬) 阅读(568) 评论(0) 推荐(1) 编辑
摘要:很多 javascript 框架都提供了自定义事件(custom events),例如 jquery、yui 以及 dojo 都支持“document ready”事件。而部分自定义事件是源自回调(callback)。回调将多个事件句柄存储在数组中,当满足触发条件时,回调系统则会从数组中获取对应的句... 阅读全文
posted @ 2014-05-17 00:57 bigwhiteshark(云飞扬) 阅读(1202) 评论(0) 推荐(0) 编辑
摘要:想获取当前系统cpu的使用率,如果允许使用hta,可以使用以下的代码获取当前cpu的使用率(较为精确)setInterval(function() { var locator=new ActiveXObject ("WbemScripting.SWbemLocator"); var service=locator.ConnectServer("."); var cpu=new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item(); document 阅读全文
posted @ 2013-02-26 16:49 bigwhiteshark(云飞扬) 阅读(826) 评论(0) 推荐(0) 编辑
摘要:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <title> New Document </title> <meta http-equiv="Content-Type" content="text/html; charset=gbk"/> <meta na 阅读全文
posted @ 2013-02-26 15:18 bigwhiteshark(云飞扬) 阅读(12286) 评论(1) 推荐(0) 编辑
摘要:前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象。Javascript可以通过一定的设计模式来实现面向对象的编程,其中this “指针”就是实现面向对象的一个很重要的特性。但是this也是Javascript中一个非常容易理解错,进而用错的特性。特别是对于接触静态语言比较久了的同志来说更是如此。示例说明 我们先来看一个最简单的示例:Js代码<scripttype="text/javascript">varname="KevinYang";functionsayHi(){ 阅读全文
posted @ 2013-01-14 11:59 bigwhiteshark(云飞扬) 阅读(534) 评论(0) 推荐(0) 编辑
摘要:闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。 function f1(){ var n=999; }... 阅读全文
posted @ 2013-01-14 11:08 bigwhiteshark(云飞扬) 阅读(632) 评论(0) 推荐(0) 编辑
摘要:在看js代码时,有时会看到关于quirks mode(怪异模式)和strict mode(严格格式)的东西,一直也没深究怎么回事,只是零零碎碎的有些概念,最近终于受不了这种似懂非懂的感觉,决定好好学习总结一下。1、quirks mode和strict mode是浏览器解析css的两种模式,或者可以称之为解析方法。目前正在使用的浏览器这两种模式都支持。2、历史原因。当早期的浏览器Netscape 4和Explorer 4对css进行解析时,并未遵守W3C标准,这时的解析方式就被我们称之为quirks mode(怪异模式),但随着W3C的标准越来越重要,众多的浏览器开始依照W3C标准解析CSS,仿 阅读全文
posted @ 2013-01-05 18:27 bigwhiteshark(云飞扬) 阅读(964) 评论(0) 推荐(2) 编辑
摘要:三. Javascript面向对象编程:非构造函数的继承本节介绍不使用构造函数实现"继承"。1. 什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。 varChinese={ nation:'中国'};还有一个对象,叫做"医生"。 varDoctor={ career:'医生'}请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个"中国医生"的对象?这里要注意,这两个对象都是普通对象,不是构造 阅读全文
posted @ 2013-01-01 11:57 bigwhiteshark(云飞扬) 阅读(264) 评论(0) 推荐(0) 编辑
摘要:二. Javascript 面向对象编程:构造函数的继承本节主要介绍,如何生成一个"继承"多个对象的实例。比如,现在有一个"动物"对象的构造函数,functionAnimal(){ this.species="动物"; }还有一个"猫"对象的构造函数,functionCat(name,color){ this.name=name; this.color=color; }怎样才能使"猫"继承"动物"呢?1. 构造函数绑定最简单的方法,大概就是使用call或apply方法,将父对 阅读全文
posted @ 2013-01-01 11:56 bigwhiteshark(云飞扬) 阅读(265) 评论(0) 推荐(0) 编辑
摘要:一. Javascript 面向对象编程:封装Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?1. 生成对象的原始模式假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性。varCat={ name:'', color 阅读全文
posted @ 2013-01-01 11:53 bigwhiteshark(云飞扬) 阅读(307) 评论(0) 推荐(0) 编辑
摘要:UglifyJS是基于 NodeJS 的Javascript语法解析/压缩/格式化工具,它支持任何CommonJS模块系统的Javascript平台(实现自己的CommonJS平台也非难事)。 UglifyJS通过解析重新生成JS代码的语法树,你可以通过AST以了解更多代码情况,或者自己来做一个不同的实现。UglifyJS解析器是在 parse-js.js 中实现的,它是非常优秀的 parse。非安全转换UglifyJS是基于 NodeJS 的Javascript语法解析/压缩/格式化工具,它支持任何CommonJS模块系统的Javascript平台(实现自己的CommonJS平台也非难事)。 阅读全文
posted @ 2012-04-29 15:10 bigwhiteshark(云飞扬) 阅读(13681) 评论(0) 推荐(0) 编辑
摘要:url paramter:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//lastest:var queryStrings=function() {//get url querystring var params=document.location.search,reg=/(?:^\?|&)(.*?)=(.*?)(?=&|$)/g,temp,args={}; while((temp=reg.exec(params))!=n 阅读全文
posted @ 2012-03-28 19:16 bigwhiteshark(云飞扬) 阅读(4391) 评论(0) 推荐(0) 编辑
摘要:梁友栋-Barsky裁剪算法 Cyrus和Beck用参数化方法提出了比Cohen-Sutherland更有效的算法。后来梁友栋和Barsky独立地提出了更快的参数化线段裁剪算法,也称为Liany-Barsky(LB)算法。一、梁友栋-Barsky裁剪算法思想: 我们知道,一条两端点为P1(x1,y1)、P2(x2,y2)的线段可以用参数方程形式表示:x= x1+ u·(x2-x1)= x1+ u·Δxy= y1+ u·(y2-y1)= y1+ u·Δy 0≤u≤1(1) 式中,Δx=x2-x1,Δy=y2-y1,参数u在0~1之间取值,P(x,y)代表了 阅读全文
posted @ 2012-02-12 15:02 bigwhiteshark(云飞扬) 阅读(26220) 评论(0) 推荐(3) 编辑
摘要:Canvas里的globalCompositeOperation是个很少用到的函数,不太熟悉程序绘图的同学们估计压根都不知道这玩意是干什么的.简单来说,Composite(组合),就是对你在绘图中,后绘制的图形与先绘制的图形之间的组合显示效果,比如在国画中,你先画一笔红色,再来一笔绿色,相交的部分是一种混色,而在油画中,绿色就会覆盖掉相交部分的红色,这在程序绘图中的处理就是Composite,Canvas API中对应的函数就是globalCompositeOperation,跟globalAlpha一样,这个属性是全局的,所以在使用的时候要注意save和restore.我在练习这个函数的时候 阅读全文
posted @ 2012-02-11 20:07 bigwhiteshark(云飞扬) 阅读(6927) 评论(1) 推荐(3) 编辑