JavaScript基礎 執行個體和框架組成

來源:互聯網
上載者:User
完整的例子: 使用對象和繼承等的示範
//父類樣本
function Parent(students, teacher) {
       //公有成員
       this.name = teacher;
       this.students = students;
       this.teacher = teacher;
       //私人成員
       //_me 處理範圍的特殊變數
       var _me = this;
       var _year;
       //建構函式定義的末尾執行
       function constructor() {
              _year = 1900;
       }
       //公有方法
       this.getName = function () {
              this.pubMe1();
              return this.name;
       };
       //公有方法,特權方法可以訪問私人和公有成員
       this.getYearBorn = function () {
              _disp();
              return _year;
       };
       //私人方法
       function _disp(){
              alert(_me.name);
              alert(_year);
       }
       var _disp2 =function(){
              alert(_me.name);
              alert(_year);
       };
 
       constructor();
}
//公有方法的另一種定義
Parent.prototype.pubMe1 = function () {
       //只能訪問執行個體成員
       alert(this.name);
};
//靜態成員和方法
Parent.TITLE = 'static';
Parent.StaticMe = function () {
       alert(this.TITLE);
};
 
//子類樣本
function Child(students, teacher) {
       //構造傳遞
       Parent.apply(this, arguments); 
 
       this.cld = students;
       var _pri = teacher;
 
       this.DoChild = function () {
              alert(this.cld + _pri);
              alert(this.name);
       };
}
//原形繼承法
Child.prototype = new Parent();
Child.prototype.constructor = Child;
 
// Create a new Parent object
var p = new Parent(["John", "Bob"], "Mr. Smith");
alert(p.getName());
alert(p.getYearBorn());
p.pubMe1();
Parent.StaticMe();
 
var c = new Child("c", "p");
c.DoChild();

 

完整例子:函數對象的擴充封裝形式
function Parent(name) {
       var _pri = "pri" + name;
 
       var priMethod = function(){
              alert(_pri);
       };
 
       return{
              pub : name,
 
              pubMethod : function () {
                    alert(this.pub);
                    alert(_pri);
                    priMethod();
              }
       };
}
 
Parent.TITLE = 'static';
Parent.StaticMe = function () {
       alert(this.TITLE);
};
 
alert(Parent.TITLE);
 
var d =new Parent('demo');
d.pubMethod();
Parent.StaticMe();
 

這種形式由於範圍的限制,最好不要實現繼承

 

完整的例子包括DOJO jQuey ExtJS MS AJAX的整合套件例子可在如下地址下載:

http://jsfkit.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=153492
http://jsfkit.codeplex.com/releases/53146/download/153653

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.