文章列表
来看一下这个东西mousemat.html:
<html>
<head>
<link rel='stylesheet' type='text/css' href='mousemat.css' />
<script type='text/javascript'>
var cursor=null
window.onload=function(){
var mat=document.getElementById('mousemat');
mat.onmousemove=mou ...
- 2009-08-14 14:31
- 浏览 836
- 评论(0)
闭包吧~
JavaScript中的闭包
Function对象本身是不完整的——为了调用它,我们需要传进一个上下文对象以及一组参数(可能是一个空的集合)。在最简单的情况下,闭包可以看做是捆绑了运行所需所有资源的Function对象。
闭包在 ...
- 2009-08-12 16:48
- 浏览 776
- 评论(0)
Ajax事件处理和函数上下文
对于鼠标和键盘事件的特殊种类来说,Ajax事件处理函数和大多数GUI工具包语言(GUI toolkit language) 中的事件处理函数差不多是一样的。现在关注一个经常使粗心的开发者犯错的特定问题。
事件处理函数要么当作HTML标记一部分来声明,例如:
<div id = ‘myDiv’ onclick = ‘alert:alert(this.id)’ ></div>
或者使用编程方式来声明,例如:
function clickHandler() { alert(this.id); }
myDiv.onclick = clickHa ...
- 2009-08-09 19:57
- 浏览 712
- 评论(0)
好吧,方法和函数
函数是一等公民
函数有点像Java的方法,调用时,也有参数和返回值。但是有一个关键的区别:Java方法天生捆绑在定义它的类上,不能与类脱离开存在;JavaScript函数是自由浮动的实体,自身就可以作为正常等对象(静态的Java方法位于这两者之间——它们并没有捆绑在任何对象实例上,但是仍然捆绑在类的定义上)。
在JavaScript中,Function是一个内建的对象类型。就像期待的那样,它包含可执行的代码,可以调用,但是它也是Object类的子孙,并且可以做JavaScript对象可以做的任何事情,例如使用名称来保存属性。Function对象上很可能(并且非常普遍)附加 ...
- 2009-08-08 19:59
- 浏览 689
- 评论(0)
然后是接口和“鸭子类型”
接口和“鸭子类型”
C++ 的虚类或者Java的接口为我们在代码中定义这些概念提供了必要的机制。接口在不同的软件组件之间定义了一个契约。接口提供了好的概念分离,并且支撑了很多的设计模式。
JavaScript没有正式的接口概念,那么我们如何来做呢?
最简单的方法是非正式地定义契约,并且在接口的每一端简单地依赖于开发者,明白他们正在做什么。Dave Thomas给中国方法起了一个迷人的名字“鸭子类型”(duck typing)——如果它走起来像鸭子,叫起来也像鸭子,那么它就是鸭子(这让我想起了中国的一句话叫啥来着)。
假设我们希望将两个形状的面积加在一起。在ja ...
- 2009-08-07 18:24
- 浏览 995
- 评论(0)
反射(reflectiong),这让我想起了struts2中的反射机制,对于反射的理解在学习struts2中有着很大的作用,但是这里很惭愧啊,自己还没充分弄清楚~~~
JavaScript对象的反射
在一些情况下,我们需要能够在对对象完全不了解的情况下进行处理,并且在处理它们之前发现它们的属性和方法的性质。这个发现的过程称作反射(reflection)。
需要发现一个JavaScript对象是否支持一个特定的属性或方法,我们也简单地测试如下:
if(MyObject.someProperty)
{
……
}
注:这个测试可能失败,原因是MyObject.someProperty可以 ...
- 2009-08-07 14:14
- 浏览 765
- 评论(0)
下面该是扩展内建类的部分了~~
扩建内建类
JavaScript用来嵌入在那些能够向脚本环境暴露自己本地对象的程序中。这些对象通常描述为内建类或者宿主对象,它们与我们讨论过的用户定义对象有某种程度的差别。尽管如此,原型机制也可以与内建类协同工作。在Web浏览器中,DOM节点在IE浏览器中不能扩展,但是其他的核心类在所有主要的浏览器中都是可以扩展的。如Array类,Object类。
Array.prototype.indexOf() = function(obj)
{
var result = -1;
for(var i = 0; I < this.length; i++)
{
...
- 2009-08-06 17:37
- 浏览 689
- 评论(0)
恩,闪亮登场~~~
JavaScript 如何为像我一样的先接触面向对象语言的孩子们提供编程舒适性?
构造函数、类和原型
Java和JavaScript都支持new关键字,允许我们创建预先定义的对象的实例,终于找到java的感觉了。
在java中所有东西(除了少数的基本类型)都是一个对象,最后都继承自java.lang.Object类。我们首先声明类型,然后使用构造函数实例化:
MyObject myObj = new MyObject(art1,arg2);
JavaScript也有对象和类的概念,但是没有内建继承的概念。事实上,每个JavaScript对象是相同基类(一个有能力在运行 ...
- 2009-08-06 13:44
- 浏览 695
- 评论(0)
hey,guys~~
那么还是继续上次的话题,我们如何将原始的JavaScript简化呢?使用JSON吧
使用JSON
JSON是语言的一个核心特征,提供了一种创建数组和对象图(object graph)的简单机制。
Array类(JavaScript内建),使用new关键字初始化:
myLibrary.books = new Array();
可以像传统的C或Java数组:
myLibrary.book[4] = somePredefinedBook;
也可以使用键值关联,类似Java的Map或者Python的Dictionary:
myLibrary.books[“bestSell ...
- 2009-08-05 19:55
- 浏览 723
- 评论(0)
本意在于看ajax,但当看到核心部分时竟发现自己对javascript是那么陌生,不由得又回到开始重新去学习下在ajax中起到粘合剂作用的语言javascript。碰巧的是我这时正在看的书的作者也是在java,c++等语言的基础上去看的,这让我有了一个更好认识javascript的机会。下面的东西自己只是作为一个打字工和一个摘录者,大多参考了Dave Crane和Eric Pascarello的ajax实战(中文)。
javaScript不是 java
名字由NETSCAPE 市场部决定,起这个名字完全是为了沾java的光。其思想大多源于类似Scheme和Self的函数式语言(functi ...
- 2009-08-04 20:59
- 浏览 631
- 评论(0)