通往RIA的第一步, JavaScript对象基础
读 YUI ,EXT等源码的时候看JS天旋地转,那可不是51JS上那种挪挪位置就能理解的,此刻如果没有JavaScrip的基础,更是像没有星光的黑夜.......
自以为觉得Js对象是很好理解的东东,然而真实践起来却一片糊涂。
通过查阅经典书籍《Professional JavaScript For Web Developers》稍微有些理解了
JavaScript的基本类型
原始类型如: Undefined Null Boolean Number String 等 用 typeof方法能辨别之
引用类型如: Object Function Array Boolean Number String Date等,用insanceof方法辨别之
严格来讲,JavaScript没有对象(Object),但是由于和OO术语对应,所以也称之为对象。所以Array,Function,基本类型,引用类型,函数,以及函数的属性 等等这些都是对象。
而对象分类,则可以分为内置对象(Built-in Object) 和宿主对象(host object)。
内置对象如 Math,Data啊。
宿主对象则如 BOM,DOM之类.
重新回顾了下这些基本概念之后,在做简单实践就有些理解了。
因此对象的使用,创建方式不尽相同,最简单的归类如下:
1 基本创建方式
[code]
function Class() {
window.alert("Hello Class!");
}
var clz= new Class();
[/code]
2 访问对象成员
[code]
function Class(){
this.x = " this is x";
this.y = "this is y";
this.z = viewXY;
function viewXY(){
alert("x+","+y);
}
}
var clz= new Class();
clz.viewXY();
[/code]
3 对象继承
[code]
function Parent() {
this.type= "human!";
}
function Child(){
this.age = "26";
this.sex ="male";
this.say= myInfo;
function myInfo(msg){
alert(msg+this.type+ ","+this.age+","+this.sex);
}
}
Child.prototype = new Parent();
var clild = new Child();
clild.say("I'm ");
[/code]
4.重用原对象 (书上的例子太好了,搬来了)
[code]
Funcion.prototype.toString() = function(){
return "Function code hidden";
}
function sayHi(){
alert("hi");
}
alert(sayHi.toString());
[/code]
不管Ajax是否是明日黄花,历史会见证这一刻。
由 Ajax In Action 一书收集提供的ajax 库,将它们搬了上来。
尽管这些信息已经算是比较老的,但是Ajax库的积累和开发并非一蹴而就,需要一个时段的沉淀和积累。
如下: 其中有我们非常熟悉的 DWR,Dojo,Prototype,ScriptAculous,Qooxdoo,RubyOnRails(主要集成了Prototype和Scriptaculous) 都依然在活跃着不断更新和迈进。
Accesskey Underlining Library 开源
www.gerv.net/software/aul/
ActiveWidgets 商业产品,可免费下载
www.activewidgets.com
Ajax JavaServer Faces Framework 开源 (Apache GPL)
http://smirnov.org.ru/en/ajax-jsf.html
Ajax JSP Tag Library 开源
http://ajaxtags.sourceforge.net/
Ajax.NET (2005)未说明学科,可免费使用
http://weblogs.asp.net/mschwarz/
AjaxAC 开源产品 Apache2.0
http://ajax.zervaas.com.au
AjaxAspects 免费使用有原码
http://ajaxaspects.blogspot.com
Michael Mahemoff (2005) 开源 产品
http://ajaxify.com/run/testAjaxCaller
AjaxFaces 开源产品 Apache
http://myfaces.apache.org/
BackBase 商业产品,有免费的社区版
http://www.backbase.com
Behaviour 开源产品
www.ripcord.co.nz/behaviour/
Bindows 商业产品
www.bindows.net
BlueShoes 商业产品,有免费版本
www.blueshoes.org
CakePHP 开源产品
http://cakephp.org/
CL-Ajax Richard Newman (2005) 开源产品
http://cliki.net/cl-ajax
ComfortASP.NET 预发布商业软件,有免费版本
www.daniel-zeiss.de/ComfortASP/
Coolest DHTML Calendar 开源产品,有商业支持
www.dynarch.com/projects/calendar/
CPAINT (跨平台的可异步方式通讯的工具包) GPL许可
http://cpaint.sourceforge.net
Dojo Alex Russell(2004) 开源产品
http://dojotoolkit.org
DWR (直接远程调用 ) 开源产品 Apache许可
www.getahead.ltd.uk/dwr
Echo 2 开源产品(MPL或者GPL许可)
www.nextapp.com/products/echo2
f(m) 开源产品
http://fm.dept-z.com/
FCKEditor 开源产品
www.fckeditor.net
Flash JavaScript Integration Kit 开源产品
www.osflash.org/doku.php?id=flashjs
Google AjaxSLT 开源产品(BSD许可)
http://goog-ajaxslt.sourceforge.net
Guise 商业产品,可免费下载
www.javaguise.com
HTMLHttpRequest Angus Turnbull (2005) 开源产品
www.twinhelix.com/JavaScript/htmlhttprequest/
Interactive Website Framework 开源产品
http://sourceforge.net/projects/iwf/
Jackbe 商业产品
www.jackbe.com/solutions/development.html
JPSpan 开源产品 PHP许可
http://jpspan.sourceforge.net/wiki/doku.php
jsolait LGPL许可
http://jsolait.net
JSON 开源产品,大部分实现使用LGPL许可
www.json-rpc.org/
JSRS (JavaScript Remote Scripting) 开源产品
www.ashleyit.com/rs/jsrs/test.htm
LibXMLHttpRequest Stephen W. Coate (2003) 源码可下载,有版权保护
www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXml-Request.html
Mochikit 开源产品(MIT许可)
www.mochikit.com/
netWindows 开源产品
www.netwindows.org
Oddpost 商业产品
www.oddpost.com
OpenRico Bill Scott, Darren James (2005) 开源产品
http://openrico.org
Pragmatic Objects 开源产品
http://pragmaticobjects.com/products.html
Prototype Sam Stephenson (2004)开源产品
http://prototype.conio.net/
Qooxdoo 开源产品 LGPL许可
http://qooxdoo.sourceforge.net
RSLite Brent Ashley (pre-2000)
www.ashleyit.com/rs/main.htm
Ruby on Rails David Heinemeier Hansson (2004) 开源产品(MIT许可)
www.rubyonrails.org
Sack 开源产品(修改过的MIT/X11许可)
http://twilightuniverse.com/2005/05/sack-of-ajax
SAJAX 开源产品
www.modernmethod.com/sajax
Sarissa 开源产品
http://sarissa.sf.net
Scriptaculous Thomas Fuchs (2004) 开源产品
http://script.aculo.us
SWATO… 开源产品Apache许可
http://swato.dev.java.net
Tibet 商业软件
www.technicalpursuit.com
TinyMCE 开源产品有一定的商业支持和专有插件
http://tinymce.moxiecode.com/
TrimPath Templates 开源产品
http://trimpath.com/project/wiki/JavaScriptTemplates
Walter Zorn’s DHTML Libraries 开源产品
www.walterzorn.com/index.htm
WebORB for .NET 商业产品有免费版本
www.themidnightcoders.com/weborb/aboutWeborb.htm
WebORB for Java 商业产品,有免费版本
www.themidnightcoders.com/weborb/aboutWeborb.htm
x Mike Foster (2005) 开源产品
www.cross-browser.com
XAJAX J. Max Wilson (2005) 开源产品
http://xajax.sf.net
x-Desktop 开源产品,GPL许可
www.x-desktop.org/
XHConn Brad Fults (2005)
http://xkr.us/code/JavaScript/XHConn