javascript中的封裝多型和繼承
阿新 • • 發佈:2019-01-23
//這就是繼承了
(function (windows, undefined) {
//父類
function Person() { }
Person.prototype.name = "name in Person";
Person.prototype.learning = function () {
alert("learning in Person")
}
//子類
function Student() { }
Student.prototype = new Person(); //修復原型
Student.prototype.constructor = Student; //建構函式
Student.prototype.supr = Person.prototype; //父類
Student.prototype.learning = function () {
alert("learning in Student");
}
//工人
function Worker() { }
Worker.prototype = new Person(); //修復原型
Worker.prototype.constructor = Worker; //建構函式
Worker.prototype.supr = Person.prototype; //父類
Worker.prototype.learning = function () {
alert("learning in Worker");
}
//工廠
var personFactory = function (type) {
switch (type) {
case "Worker":
return new Worker();
break;
case "Student":
returnnew Student();
break;
}
return new Person();
}
//客戶端
var person = personFactory("Student");
person.learning(); //learning in Student
person = personFactory("Worker");
person.learning(); //learning in Worker
})(window, undefined);