
·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 让JS写的更接近OOP
下面这段代码就是利用JS原型对象,来实现的类的继承DEMO
$ 为jquery对象
////公共方法
// $.oop.newClass=function newClass(obj) {
// function create() {
// if (obj != null)
// return obj();
// }
// var c = new create();
// return c;
// }
//人
var person = $.oop.newClass(function () {
//构造函数
function person() {
}
//公有属性
person.PRototype.age = 15;
//公有函数
person.prototype.eat = function () {
alert("我会吃");
};
return person;
});
//程序员
var programMonkey = $.oop.newClass(function () {
//构造函数
function programMonkey() {
} programMonkey.prototype = person.prototype;//继承
programMonkey.prototype.skill = "asp.net";
programMonkey.prototype.work = function () {
alert("我会加班");
}
return programMonkey;
});
var pm = new programMonkey();
//人的函数
pm.eat();
//程序猿的函数
pm.work();
//输出属性
alert("人家才" + pm.age + "岁,我是一个" + pm.skill + "猿");
因为JS一些特性实现一个多态也非简单
//共用函数
//$.oop.newClass = function (obj) {
// function Create() {
// if (obj != null)
// return obj();
// }
// var c = new Create();
// return c;
//}
var iperson = $.oop.newClass(function () {
//构造函数
function person() {
}
person.prototype.name;
person.prototype.iq;
person.prototype.eat;
return person;
});
//程序员
var programMonkey = $.oop.newClass(function () {
//构造函数
function programMonkey() {
} programMonkey.prototype = iPerson.prototype ;//继承
return programMonkey;
});
//设计湿
var designer = $.oop.newClass(function () {
//构造函数
function designer() {
} designer.prototype = iPerson.prototype ;//继承
return designer;
});
var inputValue = "程序员";
var ip = new iPerson();
if (inputValue == "程序员") {
ip = new programMonkey();
ip.iq = 0;
ip.eat = function (msg) {
alert(msg + "吃香蕉")
}
} else if (inputValue == "设计湿") {
ip = new designer();
ip.iq = 100;
ip.eat = function (msg) {
alert(msg + "吃香蕉")
}
}
ip.name = inputValue;
ip.eat("我是"+ip.name+" 智力"+ip.iq+" ");
根据不同的input Value会执行相应的 eat函数