| java代碼: |
Basket.prototype = new Hashtable(); Basket.prototype.constructor = Basket; |
| java代碼: |
var v = "aaa"; function func() { alert(v); ... var v = "bbb"; } |
| java代碼: |
function func(v1, v2) { alert(v2); } func(1); |
| java代碼: |
if(v2 == undefined) { ... } |
| java代碼: |
if(typeof v2 == "undefined") { ... } |
| java代碼: |
ClassName.prototype.f1 = function () { ... } |
| java代碼: |
function func1 () { ... } ClassName.prototype.f1 = func1; |
| java代碼: |
ClassName.prototype.f1 = function func1 () { ... } |
這樣做的好處是你現在可以在多個(gè)類(lèi)中重用相同的方法(可能性似乎很小,是吧?)。
我這里還是按照面向對象的習慣叫做方法。一般在 JS 中我把類(lèi)中的 function 稱(chēng)做方法,而把全局范圍的 function 稱(chēng)做函數。
5、重載父類(lèi)的方法后如何調用父類(lèi)的方法?
你現在已經(jīng)知道 JS 完全可以實(shí)現繼承了,當然也可以實(shí)現重載,否則還能叫面向對象語(yǔ)言嗎?比如在父類(lèi) BaseClass 中有一個(gè) f1 的方法,子類(lèi) SubClass 要重載這個(gè)方法,只需要這樣寫(xiě):
| java代碼: |
SubClass.prototype.f1 = new |
| java代碼: |
SubClass.prototype.f1 = new |
| java代碼: |
function SubClass (arg1, arg2) { BaseClass.call(this, arg1, arg2); ... } |
6、JavaScript 開(kāi)發(fā)如何做自動(dòng)測試?
JavaScript 也是可以做自動(dòng)測試的。xUnit 框架在 JS 領(lǐng)域的嫡系傳人是 JsUnit(http://jsunit.berlios.de),基本上就是 JUnit 的 JS 版,連例子都是從 JUnit 的例子移植過(guò)來(lái)的。
如何用 TDD 方式做 JS 開(kāi)發(fā)?這個(gè)話(huà)題可就大了,足夠說(shuō)上幾天的,以后我會(huì )另開(kāi)主題討論這個(gè)問(wèn)題。
聯(lián)系客服