ÔÎÄ£ºhttp://www.webreference.com/programming/javascript/rg39/ ×÷ÕߣºRob Gravelle
°æȨÉùÃ÷£º·Òë×÷Æ·£¬»¶ÓתÔØ£¬×ªÔØʱÇëÎñ±ØÒÔ³¬Á´½ÓÐÎʽ±êÃ÷ÎÄÕÂÔʼ³ö´¦ ¡¢×÷ÕßÐÅÏ¢ºÍ±¾ÉùÃ÷¡£
ÔÚJavascript·þÎñÆ÷¶Ë±à³Ì½éÉÜÒ»ÎÄÖУ¬ÎÒÃÇѧϰÁËAptana Jaxer·þÎñÆ÷£¬ËüÊÇÒ»¸öÏñApache¡¢Jetty»òÕßTomcatÕâЩ·þÎñÆ÷µÄÒ»¸ö²å¼þ¡£»ùÓÚMozilla GeckoÄںˣ¬JaxerµÄ·þÎñÆ÷¶ËJS½Ó¿ÚÌṩÁËÊý¾Ý¿â/ÎļþϵͳµÄ·ÃÎÊ£¬ÍøÂçͨÐÅ¡¢Óû§»á»°£¬ºÍÆäËûµÄWebÓ¦ÓÃÓïÑÔ¾ßÓдú±íÐԵŦÄÜ¡£½ñÌ죬ÎÒÃǾÍҪʹÓÃAptana Studio IDEÀ´ÎªJaxer´î½¨Ò»¸ö¼òµ¥µÄ»ùÓÚÎļþµÄ²©¿Í¡£
ÊìϤAptana Studio IDE
ÎÒÃǽ«ÒªÊ¹ÓõÄAptana StudioÊÇÒ»¸öÃâ·Ñ¡¢¿ªÔ´¡¢»ùÓÚEclipseµÄÈí¼þ¡£Èç¹ûÄã´ÓδʹÓùýEclipse£¬Ä㽫»á×¢Òâµ½ËüºÍÆäËûÁ÷ÐеÄIDEÊǶàôµÄÏàËÆ¡£×î»ù±¾µÄAptana StudioÖ§³ÖHTML¡¢DOM¡¢JSºÍCSS£¬µ«ÊÇÄã¿ÉÒÔͨ¹ý¸½¼ÓµÄ²å¼þÀ´½øÒ»²½¶¨ÖÆËü£¬ÒÔÖ§³ÖPHP¡¢Ruby on Rails¡¢Python¡¢Adobe AIR¡¢Apple iPhoneºÍNokia S60µÄ¿ª·¢¡£Aptana Studio»¹ÓÐÒ»¸öEclipseµÄ²å¼þ°æ±¾£¬ÌṩÁ˸½¼þµÄJavaÖ§³Ö¡£×¨Òµ°æÔö¼ÓÁËSFTP¡¢FTPS°²È«Îļþ´«Êä¡¢JSONµÄ±à¼Æ÷¡¢IEä¯ÀÀÆ÷µÄµ÷ÊÔÆ÷¡¢±¨¸æÒýÇæ¡¢RubyÐÔÄÜÓÅ»¯Æ÷¡¢Ô¶³ÌÏîÄ ......
<html>
<head>
<script type="text/javascript">
function tree(treethis){
if (treethis.alt == "+"){
treethis.alt = "-";
document.getElementById("bench").style.display="block";
}else
{
treethis.alt = "+";
document.getElementById("bench").style.display="none";
}
}
</script>
</head>
<body>
<a href="javascript:void(0)" style ="text-decoration:none;color:red" onclick="tree(this);" alt="+">aaaa</a>
<span id="bench" style="display:none;margin-left:19px;">
<?php
$tree_bentch = array("aaa","bbb","ccc");
for ($i=0;$i<count($tree_bentch); ......
5¡¢Óà ¹¹Ô캯Êý+ÔÐÍ ¶¨ÒåÒ»¸öÀࣻͬһ¹¹Ô캯Êý¿ÉÒÔ¶¨Òå³ö¶à¸öÀàÐÍ
/**
* $define дÀ๤¾ßº¯ÊýÖ®¶þ
* @param {Object} constructor
* @param {Object} prototype
*/
function $define(constructor,prototype) {
var c = constructor || function(){};
var p = prototype || {};
return function() {
for(var atr in p)
arguments.callee.prototype[atr] = p[atr];
c.apply(this,arguments);
}
}
ÓëµÚËÄÖÖ·½Ê½ÀàËÆ£¬ÈÔÈ»Óù¹Ô캯Êý£¬ÔÐͶÔÏ󣬶¨ÒåÁ½¸öÀà¡£
//¹¹Ô캯Êý
function Person(name) {
this.name = name;
}
//ÔÐͶÔÏó
var proto = {
getName : function(){return this.name},
setName : function(name){this.name = name;}
}
//¶¨ÒåÁ½¸öÀà
var Man = $define(Person,proto);
var Woman = $define(Person,proto);
console.log(Man == Woman);//false,ͬһ¸ö¹¹Ô캯Êý£¨Person£©¶¨Ò岻ͬµÄÀà
......
Õâƪ¿ªÊ¼»á·ÖÎöÁ÷ÐеÄjs¿â֮дÀ෽ʽ¡£¸÷ÖÖ¿âµÄдÀ෽ʽËäȻǧÆæ°Ù¹Ö£¬µ«ÈÔÈ»ÌÓÀë²»Á˱¾ÖÊ---Óù¹Ô캯ÊýºÍÔÐÍ
À´×é×°Àà¡£
6¡¢Prototype.jsµÄдÀ෽ʽ
//prototype.jsÖеĴúÂë
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
//¼ò»¯ºóµÄ
function Clazz() {
return function(){
this.initialize.apply(this,arguments);
}
}
Èçϲ½Öèдһ¸öÀ࣬
//ˈ̞Person
var Person = Class.create();
//ͨ¹ýÔÐÍÖØдÀ´¶¨ÒåPerson
Person.prototype = {
initialize : function(name) {
this.name = name;
},
getName : function() {
return this.name;
},
setName : function(name) {
this.name = name;
}
}
//´´½¨¶ÔÏó
var p = new Person("jack");
console.log(p.constructor == Person);//false
initializeÍê³É¶ÔÏóµÄ³õʼ»¯£¨Ï൱ÓÚ¹¹Ô캯Êý£©£¬·½·¨ÒÀ´ÎÍùÏÂд¼´¿É¡£
ÓиöÎÊÌ⣬ͨ¹ýÕâ¾äp.constructor ==
PersonΪfalse¿ÉÒÔ¿´µ½£¬ÕâÕýÊÇPrototype.jsÒ»¸öССµÄȱÏÝ¡£ÔÒòÊÇÖØдÁËPersonµÄÔÐÍ¡£ÎªÁËʹconstructorÄÜÖ¸
ÏòÕýÈ·µÄ¹¹ ......
7¡¢dojo.jsµÄдÀ෽ʽ
dojo×îÐÂÊÇ1.3.1ÁË£¬¼ÇµÃ07Äêʱ»¹ÊÇ0.4¡£ÎĵµÒ²½¥½¥¶àÁËÆðÀ´£¬ÓÃdojoµÄÒ²ÂýÂý¶àÁË¡£dojo»¹·¢²¼ÁËcore°æ£¬Ñ¹ËõºóÖ»ÓÐ
27kb¡£dojoÖÐÓÃdojo.declare·½·¨À´¶¨ÒåÒ»¸öÀà¡£dojo.declareµÄÔ´Âë¾Í²»ÌùÔÚÕâÀïÁË¡£dojo.declareÓÐÈý¸ö²Î
Êý£¬
²ÎÊý1£ºÀàÃûclassName
²ÎÊý2£º¼Ì³ÐµÄÀàsuperclass
²ÎÊý3£º¹¹ÔìÆ÷£¬·½·¨props
µ¥´¿µÄ¶¨ÒåÒ»¸öÀàʵ¼ÊÖ»Ðè´«µÚÒ»£¬ÈýÁ½¸ö²ÎÊý¡£ÒòΪÕâÀïÖ»ÌÖÂÛÈçºÎ¶¨ÒåÒ»¸öÀ࣬²»ÌÖÂۼ̳С£´úÂëÈçÏ£º
//¶¨ÒåÀàÃû
var className = "Person";
//¶¨Òå¹¹ÔìÆ÷¼°·½·¨
var proto = {
constructor : function(name){this.name=name;},
getName : function(){ return this.name;},
setName : function(name){ this.name = name;}
}
//¶¨ÒåÀàPerson
dojo.declare(className,null,proto);
//´´½¨Ò»¸ö¶ÔÏó
var p = new Person("tom");
console.log(p.getName());//tom
p.setName("jack");
console.log(p.getName());//jack
//²âÊÔinstanceof¼°p.constructorÊÇ·ñÕýÈ·Ö¸ÏòÁËPerson
console.log(p instanceof Person);//true
console.log(p.constructor === Person);//true
......
8¡¢Ext.jsµÄдÀ෽ʽ
ÕâÀïÓõÄÊÇExt core3.0£¬ExtÖÐÓÃExt.extendÀ´¶¨ÒåÒ»¸öÀࣨµ±È»Ëü¸ü¶àÓÃÀ´À©Õ¹Ò»¸öÀࣩ£¬ExtÕû¸ö¿ò¼Ü¸÷ÖֿؼþÈçPanel£¬MessageBoxµÈ¶¼ÊÇÓÃExt.extend·½·¨À´À©Õ¹¡£ÕâÀï½ö½öÓÃËüÀ´¶¨ÒåÒ»¸ö×î¼òµ¥µÄÀà¡£
¿´Ext.extendµÄ´úÂë¿ÉµÃÖª£¬ËüÈÔÈ»ÊÇÓù¹Ô캯ÊýºÍÔÐÍÀ´×é×°Ò»¸öÀà¡£
ÕâÀïÖ»Ðè´«Á½¸ö²ÎÊý¼´¿É£¬µÚÒ»¸ö²ÎÊýÊǸùÀàObject£¬µÚ¶þ¸öÊÇÔÐÍ¡£
/**
* PersonÀà
* @param {Object} name
*/
var Person = Ext.extend(Object,{
constructor : function(name) {this.name = name;},
setName : function(name) {this.name = name;},
getName : function() {return this.name;}
});
//´´½¨Ò»¸ö¶ÔÏó
var p = new Person("Lily");
console.log(p.getName());//Lily
p.setName("Andy");
console.log(p.getName());//Andy
//²âÊÔinstanceof¼°p.constructorÊÇ·ñÕýÈ·Ö¸ÏòÁËPerson
console.log(p instanceof Person);//true
console.log(p.constructor == Person);//true
±È½ÏÌØÊâµÄÊÇ£¬Èç¹ûµ¥´¿µÄ¶¨ÒåÒ»¸öÀ࣬ÄÇôµÚÒ»¸ö²ÎÊýÓÀÔ¶´«Object¼´¿É¡£ ......