??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美精品久久久久久,亚洲成av人片在线观看无码,亚洲精品影视在线观看http://www.aygfsteel.com/zhuyongjp/category/40702.htmlzh-cnWed, 22 Jul 2009 09:37:11 GMTWed, 22 Jul 2009 09:37:11 GMT60javascript 创徏DOM节点http://www.aygfsteel.com/zhuyongjp/archive/2009/07/22/287859.htmlzhuyongjpzhuyongjpWed, 22 Jul 2009 07:27:00 GMThttp://www.aygfsteel.com/zhuyongjp/archive/2009/07/22/287859.htmlhttp://www.aygfsteel.com/zhuyongjp/comments/287859.htmlhttp://www.aygfsteel.com/zhuyongjp/archive/2009/07/22/287859.html#Feedback0http://www.aygfsteel.com/zhuyongjp/comments/commentRss/287859.htmlhttp://www.aygfsteel.com/zhuyongjp/services/trackbacks/287859.htmljavascript 如何创徏一?DOM 节点Q?br />




key
-------------------------------------------
1、a.创徏一个Element             var newDiv = document.createElement("div");
   b.讄它的属性              ?newDiv.id = "divNew";
       c.如果需要,创徏子节点    ?var newTable = document.createElement("table");
       d.讄子节点属性         ?newTable.setAttribute("id","tableNew");
       e.重复步骤c和d,直到完成整个目录?br />       f.创徏Text节点            var newText = document.createTextNode("string");
  g.从叶子节点往上appendChild     newDiv.appendChild(newTable);
                                document.body.appendChild(newDiv);

另一U方?
    a.创徏一个Element            var newDiv = document.createElement("div");
    b.?innerHTML                                newDiv.innerHTML="<table><tr><th>type</th><th>value</th></tr></table>";


zhuyongjp 2009-07-22 15:27 发表评论
]]>
领悟 JavaScript 中的面向对象http://www.aygfsteel.com/zhuyongjp/archive/2009/07/17/287180.htmlzhuyongjpzhuyongjpFri, 17 Jul 2009 08:03:00 GMThttp://www.aygfsteel.com/zhuyongjp/archive/2009/07/17/287180.htmlhttp://www.aygfsteel.com/zhuyongjp/comments/287180.htmlhttp://www.aygfsteel.com/zhuyongjp/archive/2009/07/17/287180.html#Feedback0http://www.aygfsteel.com/zhuyongjp/comments/commentRss/287180.htmlhttp://www.aygfsteel.com/zhuyongjp/services/trackbacks/287180.html领悟 JavaScript 中的面向对象


JavaScript 是面向对象的。但是不h对这一点理解得q不全面?br />
?JavaScript 中,对象分ؓ两种。一U可以称为“普通对象”,是我们所普遍理解的那些:数字、日期、用戯定义的对象(如:{}Q等{?br />
q有一U,UCؓ“方法对象”,是我们通常定义?function。你可能觉得奇怪:Ҏ是ҎQ怎么成了对象了?但是?JavaScript 中,Ҏ的确是被当成对象来处理的。下面是一个简单的例子Q?br />

Js代码
  1. function  func() {alert( 'Hello!' );}   
  2. alert(func.toString());  

在这个例子中Qfunc 虽然是作Z个方法定义的Q但它自w却包含一?toString ҎQ说?func 在这里是被当成一个对象来处理的。更准确的说Qfunc 是一个“方法对象”。下面是例子的l:

Js代码
  1. func.name = “I am func.?   
  2. alert(func.name);  

我们可以L的ؓ func 讄属性,q更加证明了 func 是一个对象。那么方法对象和普通对象的区别在哪里呢Q首先方法对象当然是可以执行的,在它后面加上一ҎP是执行q个Ҏ对象了?br />
Js代码
  1. func();  

所以,Ҏ对象h二重性。一斚w它可以被执行Q另一斚w它完全可以被当成一个普通对象来使用。这意味着什么呢Q这意味着Ҏ对象是可以完全独立于其他对象存在的。这一Ҏ们可以同 Java 比较一下。在 Java 中,Ҏ必须在某一个类中定义,而不能单独存在。?JavaScript 中就不需要?br />
Ҏ对象独立于其他方法,意味着它能够被L的引用和传递。下面是一个例子:

Js代码
  1. function invoke(f) {   
  2.     f();   
  3. }   
  4. invoke(func);  

一个方法对?func 传递给另一个方法对?invokeQ让后者在适当的时候执?func。这是所谓的“回调”了。另外,Ҏ对象的这U特D性,也?this 关键字不Ҏ把握。这斚w相关文章不少Q这里不赘述了?br />
除了可以被执行以外,Ҏ对象q有一个特D的功用Q就是它可以通过 new 关键字来创徏普通对象?br />
话说每一个方法对象被创徏Ӟ都会自动的拥有一个叫 prototype 的属性。这个属性ƈ无什么特别之处,它和其他的属性一样可以访问,可以赋倹{不q当我们?new 关键字来创徏一个对象的时候,prototype pv作用了:它的|也是一个对象)所包含的所有属性,都会被复制到新创建的那个对象上去。下面是一个例子:

Js代码
  1. func.prototype.name=”prototype of func?   
  2. var f = new func();   
  3. alert(f.name);  

执行的过E中会弹Z个对话框Q后一个对话框表示 f q个新徏的对象从 func.prototype 那里拯?name 属性。而前一个对话框则表C?func 被作为方法执行了一遍。你可能会问了,Z么这个时候要q把 func 执行一遍呢Q其实这个时候执?funcQ就是v“构造函数”的作用。ؓ了Ş象的说明Q我们重新来一遍:

Js代码
  1. function func() {   
  2.     this.name=”name has been changed.?  
  3. }   
  4. func.prototype.name=”prototype of func?   
  5. var f = new func();   
  6. alert(f.name);  

你就会发?f ?name 属性不再是"prototype of func"Q而是被替换成?name has been changed"。这是 func q个对象Ҏ所起到的“构造函数”的作用。所以,?JavaScript 中,?new 关键字创建对象是执行了下面三个步骤的Q?br />
  1. 创徏一个新的普通对象;
  2. 方法对象的 prototype 属性的所有属性复制到新的普通对象中厅R?
  3. 以新的普通对象作Z下文来执行方法对象?/li>

对于“new func()”这L语句Q可以描qCؓ“从 func 创徏一个新对象”。MQprototype q个属性的唯一Ҏ之处Q就是在创徏新对象的时候了?/p>


那么我们可以利用这一炏V比如有两个Ҏ对象 A ?BQ既然从 A 创徏的新对象包含了所?A.prototype 的属性,那么我将它赋l?B.prototypeQ那么从 B 创徏的新对象不也有同L属性了Q写成代码就是这P

 

Js代码
  1. A.prototype.hello = function(){alert('Hello!');}   
  2. B.prototype = new A();   
  3. new B().hello();  

q就?JavaScript 的所谓“扎쀝了Q其实质是属性的拯Q这里利用了 prototype 来实现。如果不?prototypeQ那q循环了,效果是一L。所谓“多重扎쀝,自然是到处拯了?br />
JavaScript 中面向对象的原理Q就是上面这些了。自始至l我都没提到“类”的概念Q因?JavaScript 本来没有“类”这个东ѝ面向对象可以没有类吗?当然可以。先有类Q然后再有对象,q本来就不合理,因ؓcL来是从对象中归纳出来的,先有对象再有c,q才合理。像下面q样的:

Js代码
  1. var o = {}; // 我发C一个东ѝ?  
  2. o.eat = function(){return "I am eating."}  // 我发现它会吃Q?  
  3. o.sleep = function(){return "ZZZzzz..."}  // 我发现它会睡Q?  
  4. o.talk = function(){return "Hi!"// 我发现它会说话;   
  5. o.think = function(){return "Hmmm..."// 我发现它q会思考?  
  6.   
  7. var Human = new Function(); // 我决定给它v名叫“h”?  
  8. Human.prototype = o; // q个东西׃表了所有“h”的概念?  
  9.   
  10. var h = new Human(); // 当我发现其他同它一L东西Q?  
  11. alert(h.talk()) // 我就知道它也是“h”了Q?/font>