让JS写的更接近OOP
2016-02-06 19:05
567 查看
下面这段代码就是利用JS原型对象,来实现的类的继承DEMO
$ 为jquery对象
因为JS一些特性实现一个多态也非简单
根据不同的input Value会执行相应的 eat函数
$ 为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函数
相关文章推荐
- JSON解析
- js中的preventDefault与stopPropagation详解
- HYSBZ/BZOJ 1013 [JSOI2008] 球形空间产生器sphere - 高斯约当消元
- javascript面向对象编程
- ember.js的render过程分析
- ember.js提供的基础服务介绍
- 深入解读ember.js的对象体系
- 介绍javascript MVC框架:ember框架的基本概念
- 201602061615_《Javascript方法之map();filter();——以前一直很混》
- 深入浅析JavaScript面向对象和原型函数
- 基于JavaScript实现图片点击弹出窗口而不是保存
- javascript+css3 实现动态按钮菜单特效
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
- JavaScript高级程序设计学习笔记第五章--引用类型(函数部分)
- JavaScript仿商城实现图片广告轮播实例代码
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
- js 枚举 及枚举检索
- javascript中字符串的比较规则