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 () { ... } |
這樣做的好處是你現(xiàn)在可以在多個類中重用相同的方法(可能性似乎很小,是吧?)。
我這里還是按照面向?qū)ο蟮牧?xí)慣叫做方法。一般在 JS 中我把類中的 function 稱做方法,而把全局范圍的 function 稱做函數(shù)。
5、重載父類的方法后如何調(diào)用父類的方法?
你現(xiàn)在已經(jīng)知道 JS 完全可以實(shí)現(xiàn)繼承了,當(dāng)然也可以實(shí)現(xiàn)重載,否則還能叫面向?qū)ο笳Z言嗎?比如在父類 BaseClass 中有一個 f1 的方法,子類 SubClass 要重載這個方法,只需要這樣寫:
java代碼: |
SubClass.prototype.f1 = new |
java代碼: |
SubClass.prototype.f1 = new |
java代碼: |
function SubClass (arg1, arg2) { BaseClass.call(this, arg1, arg2); ... } |
6、JavaScript 開發(fā)如何做自動測試?
JavaScript 也是可以做自動測試的。xUnit 框架在 JS 領(lǐng)域的嫡系傳人是 JsUnit(http://jsunit.berlios.de),基本上就是 JUnit 的 JS 版,連例子都是從 JUnit 的例子移植過來的。
如何用 TDD 方式做 JS 開發(fā)?這個話題可就大了,足夠說上幾天的,以后我會另開主題討論這個問題。