JavaScript實(shí)現(xiàn)多態(tài)和繼承的封裝操作示例
本文實(shí)例講述了JavaScript實(shí)現(xiàn)多態(tài)和繼承的封裝操作。分享給大家供大家參考,具體如下:
封裝Encapsulation
如下代碼,這就算是封裝了
(function (windows, undefined) { var i = 0;//相對(duì)外部環(huán)境來說,這里的i就算是封裝了 })(window, undefined);
繼承Inheritance
(function (windows, undefined) { //父類 function Person() { } Person.prototype.name = "name in Person"; //子類 function Student() { } Student.prototype = new Person(); //修復(fù)原型 Student.prototype.constructor = Student; //構(gòu)造函數(shù) Student.prototype.supr = Person.prototype; //父類 //創(chuàng)建子類實(shí)例 var stu = new Student(); Student.prototype.age = 28; Student.prototype.name = "name in Student instance"; //打印子類成員及父類成員 console.log(stu.name); //name in Student instance console.log(stu.supr.name); //name in Person console.log(stu.age); //28 })(window, undefined);
使用在線HTML/CSS/JavaScript代碼運(yùn)行工具 http://tools.jb51.net/code/HtmlJsRun,運(yùn)行結(jié)果如下:
多態(tài)Polymorphism
有了繼承,多態(tài)就好辦了
//這就是繼承了 (function (windows, undefined) { //父類 function Person() { } Person.prototype.name = "name in Person"; Person.prototype.learning = function () { console.log("learning in Person") } //子類 function Student() { } Student.prototype = new Person(); //修復(fù)原型 Student.prototype.constructor = Student; //構(gòu)造函數(shù) Student.prototype.supr = Person.prototype; //父類 Student.prototype.learning = function () { console.log("learning in Student"); } //工人 function Worker() { } Worker.prototype = new Person(); //修復(fù)原型 Worker.prototype.constructor = Worker; //構(gòu)造函數(shù) Worker.prototype.supr = Person.prototype; //父類 Worker.prototype.learning = function () { console.log("learning in Worker"); } //工廠 var personFactory = function (type) { switch (type) { case "Worker": return new Worker(); break; case "Student": return new Student(); break; } return new Person(); } //客戶端 var person = personFactory("Student"); person.learning(); //learning in Student person = personFactory("Worker"); person.learning(); //learning in Worker })(window, undefined);
使用在線HTML/CSS/JavaScript代碼運(yùn)行工具 http://tools.jb51.net/code/HtmlJsRun,運(yùn)行結(jié)果如下:
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
給事件響應(yīng)函數(shù)傳參數(shù)的四種方式小結(jié)
這篇文章主要介紹了給事件響應(yīng)函數(shù)傳參數(shù)的四種方式。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12window.showModalDialog()返回值的學(xué)習(xí)心得總結(jié)
本篇文章主要介紹了window.showModalDialog()返回值的學(xué)習(xí)心得。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01用json方式實(shí)現(xiàn)在 js 中建立一個(gè)map
這篇文章主要介紹了用json方式實(shí)現(xiàn)在javascript / js 中建立一個(gè)map,需要的朋友可以參考下2014-05-05在Layui中操作數(shù)據(jù)表格,給指定單元格添加事件示例
今天小編就為大家分享一篇在Layui中操作數(shù)據(jù)表格,給指定單元格添加事件示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10