面向對象(OOP)方法使用 JavaScript
private variables:原始的定義變量的方法 var
private functions:通過 var functionName=function(){}聲明
privileged methods: 通過this.methodName=function(){}聲明
privileged properties:通過 this.variableName來聲明
(有些地方把privileged properties叫做public properties,但我感覺無論是按照
定義寫法,還是為了便于理解都叫privileged properties更好些。更便于對比對稱記憶)
prototype methods :通過Classname.prototype.methodname=function(){}來聲明
(有些地方叫public method,同樣和上邊一樣的理由,這里改叫prototype method)
prototype properties:通過 classname.prototype.propertyName=somevalue來聲明
static properties: 通過classname.propertyName=somevalue定義
static method :通過classnamne.methodName來聲明
說明:有些地方(例如我看的文檔中)把privileged properties和prototype method叫成
public properties 和public method,不知道為什么這樣叫。這樣命名后造成的問題是
1,privileged method沒有對應的privileged properties
2,prototype properties沒有對應的prototype method
3,public method和public properties的定義方式又不對稱
下邊解釋一下幾種情況:
1,private:定義在類內部,只能被類內部的方法調用,例如privileged(見實例一中的(1)(2))
2,priviledged :定義在類內部,能被任何調用,在調用上有點類似Java中
的非靜態public方法(見實例一中的(3))
3,prototype:這個概念不太好理解,在執行上有點像java的clone,只在類初始化的時候
執行一次。每次建立實例的時候不執行。能被繼承。
4,static: 有點類似java中的靜態。各實例共享,不能被繼承
實例一如下:




















































實例二演示了繼承、覆寫
另外javascript不支持多態性






































































posted on 2007-05-22 18:07 dreamstone 閱讀(1868) 評論(3) 編輯 收藏 所屬分類: 腳本語言javascript