JQuery OOP 及 OOP思想的简易理解

在项目维护的时候,看到通篇的function实际上是非常费(痛)劲(苦),个人对于前端也不是特别熟悉,就想着JQuery能否也建立OOP的写法?

目的便于日后代码维护管理,就算不为了自己,日后交接后也能让另一个攻城狮,一目了然的定位错误。

一、oop.html

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html dir="ltr" xml:lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml" lang="utf-8"><head>
 4  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5  <title>ooptest</title>
 6  <script type="text/javascript" src="jquery.min.js"></script>
 7  <script type="text/javascript" src="oop.js"></script>
 8  </head>
 9  <body>
10  <br><br>
11  <center>
12  访问<a href="http://www.jb51.net">脚本之家</a>
13  </center>
14  <br><br>
15  <div>
16  名字: <input name="Name" id="Name" type="text" value="请输入中文名字" notice="请输入中文名字" >
17  </div>
18  <div></div>
19  区域选择: <select name="RegionId" id="RegionId" >
20  <option value="0" selected="selected">行政区选择</option>
21  <option value="12">浦东新区</option>
22  <option value="42">松江区</option>
23  <option value="41">金山区</option>
24  <option value="40">崇明区</option>
25  <option value="39">青浦区</option>
26  <option value="37">静安区</option>
27  <option value="36">徐汇区</option>
28  <option value="35">长宁区</option>
29  <option value="34">虹口区</option>
30  <option value="33">闸北区</option>
31  <option value="32">宝山区</option>
32  <option value="31">嘉定区</option>
33  <option value="30">闵行区</option>
34  <option value="29">普陀区</option>
35  <option value="28">卢湾区</option>
36  <option value="27">黄浦区</option>
37  <option value="26">杨浦区</option>
38  <option value="43">奉贤区</option>
39  </select>
40  </body>
41  <html>
42  <script type="text/javascript">
43  $(document).ready(function(){
44  //实例化一个jquery的CLASS
45  new oop().init();
46  });
47  </script>

二、建一个oop.js

 1 function oop(){
 2   //定义变量
 3   var aaa = this;
 4   //初始化
 5   this.init = function(){
 6     aaa.addnotice();
 7     aaa.unchange();
 8     return aaa;
 9   }
10   //添加function
11   this.addnotice = function(){
12     $("input[type=‘text‘]").each(function(){
13       $(this)
14       .focus(function(){
15         if($(this).val() == $(this).attr(‘notice‘)){
16           $(this).val("");
17         }
18       })
19       .blur(function(){
20         if($(this).val() == $(this).attr(‘notice‘) || $.trim($(this).val()) == ""){
21           $(this).val($(this).attr(‘notice‘));
22         }
23       });
24     });
25   }
26   //添加function
27   this.cleannotice = function(){
28     $("input[type=‘text‘]").each(function(){
29       if($(this).val() == $(this).attr(‘notice‘)){
30         $(this).val("");
31       }
32     });
33   }
34   //添加function
35   this.unchange = function(){
36     $(".select").bind(‘change‘,function(){
37       if($(this).val() == ‘0‘){
38         alert(‘noselect‘);
39       }else{
40         alert($(this).val());
41       }
42     });
43   }
44 }

以上代码内容转自 http://www.jb51.net/article/78487.htm



补充内容,以下属于个人经验理解,针对尚不熟悉OOP思想的同学食用

 1 <?php
 2 /**
 3  * 歌手类
 4  */
 5 Class singer(){
 6    //唱歌
 7    function sing(){
 8         echo "唱歌";
 9     }
10     //跳舞
11     function dance(){
12         echo "跳舞";
13     }
14 }

Class是类,他是一个抽象概念,(记住一句俗语:物以‘类‘聚)

换成我们的话意思是:蓝图、原则、原型;

举例:

  歌手,他是一个类;

  世界上有无数无数的歌手,但是各有不同;(不同的歌手,各自的属性数值不一,所以造就出不一样的歌手)

  但他们都有共同的职能(这就是function),例如:唱歌、跳舞等...

 假设,需要造一名歌手 你要完成他就要实例化,new singer(),这个叫实例化,一名歌手就出来了

 往里面赋值实现方法等等等的操作步骤之后,就使得这名歌手成为了真正的有名有姓能唱擅舞的歌手。

 当然,因为这个类叫歌手,那我需要实例化一个汽车呢?这样就完全分离了

页面里面就不用实例化歌手类,而是实例化汽车类,new car().name(‘BMW‘);也就是这样了。

 以上是最最简单的理解。

转载请注明
作者:xxxholicl

时间: 2024-10-06 19:12:36

JQuery OOP 及 OOP思想的简易理解的相关文章

jQuery用面向对象的思想来编写验证表单的插件

本人的重点是怎么构建一个简单有效可扩展的jQuery表单验证插件,这篇文章没有教你怎么用 validate plugin.我们的重点在学习一些jQuery,Javascript面向对象编程的知识. 下面是一个完整的html页面代码,可以直接运行测试的. <html> <head><title>jQuery用面向对象的思想来编写验证表单的插件</title> <style type="text/css"> form {margi

struct2.1笔记01:MVC框架思想浅层理解

1. Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts 1框架更加成熟.稳定,性能也有了很好的保证.因此,到目前为止,Struts 1依然是世界上使用最广泛的MVC框架. 目前,基于Web的MVC框架非常多,发展也很快,每隔一段时间就有一个新的MVC框架发布,例如像JSF.Tapestry和Spring MVC等.除了这些有名的MVC框架外,还有一

高维空间中的体积(包含递归思想的初步理解)

n维超球体的体积的变化的特点:当n<=7的时候,体积是增大的:当n>7的时候,体积是缩小的,可以小到0 因此可以从中推出,如果以固定的半径进行取样,这取到的样本的数量是先增大,然后再缩小的. 递归思想的通俗理解:你打开面前这扇门,看到屋里面还有一扇门.你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门,你继续打开它.若干次之后,你打开面前的门后,发现只有一间屋子,没有门了.然后,你开始原路返回,每走回一间屋子,你数一次,走到入口的时候,你可以回答出你到底用这你把钥匙打开了几扇门

OOP向AOP思想的延伸

最近几天一直在研究AOP.从什么是AOP都不了解的程度开始一点一点的摸索,上网查了很多关于AOP的资料,慢慢消化它. 什么是AOP? AOP是OOP的延续,它是一种面向切面编程,说白了它就是一种思想.说到OOP大家都很熟悉,既然说是OOP的延续,理解起来应该就容易多了. 面向切面编程:即允许通过分离业务逻辑与系统服务进行内聚性开发.对"高内聚,低耦合"的一种实现,实现了调用者与被调用者之间的解耦和. 对比: 首先:AOP和OOP是不同领域的两种思想.  面向对象OOP:对现实世界的抽象

不想为了OOP而OOP

设计模块的时候习个人习惯于自顶向下.发现越往下模块越多,这时候习惯用接口类型的容器把不同实现类放到容器中,再根据情况调用接口.看上去好像是用观察者模式来调用实现模块重写的接口函数. 一但有了OOP的思想就一发不可收拾."幻想"着完美的架构,清晰UML,可往往变成了一大堆存放抽象业务类的容器,一大堆数据接口容器,然后在某个时刻发挥下"多态"的特性.结果是从数据源头到抽象业务类到具体实现的业务类到接口到接口实现类.看上去似乎是将OOP的封装.继承.多态用到了机制.画了U

对jQuery中on方法委托事件的理解

关于on方法中的委托事件,官方JQ API如下: http://api.jquery.com/on/#on-events-selector-data-handler 参考大牛阮一峰的博文: http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html 什么时候使用委托事件: 1.对未被创建的元素添加事件监听 2.避免频繁添加或删除event handler,委托父元素来进行事件处理 使用委托事件的优点: 1.大量减少监听元素的

简易理解傅里叶变换(转)

我保证这篇文章和你以前看过的所有文章都不同,这是 2012 年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者…… 这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析. 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式.但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝.老实说,这么有意思的东西居然成了大学里的杀手课程,不得不归咎于编教材的人实在是太严肃了.(您把教材

对“面向对象思想”的通俗化理解

======================面向对象思想================================================== (repost)前言: 整理这份资料的目的是为了帮助朋友们能够更直观的理解面向对象的编程.让后来者能够少走一些弯路.但其中不免有许多漏洞及错误,也还 请前辈提出宝贵的更改意见,毕竟交流会让我们不断的进步. 技术是日新月异的,他不会等待你的成长.技术要拿出来于别人交流,自己学是自己主观意识上的理解,有对有错!交流会让进步变得更快. 我认为如果

jQuery关于隐式迭代的个人理解~

1.JQuery对象“ 如: $(‘div’).text("div展示的信息") 可以看成”是一个包含一个dom数组 和 包含所有Jquery方法的容器 2.每当我们调用选择器方法查找dom树里的元素时,其实就是把找到的dom元素存入一个JQ对象里的dom数组中,然后再把这个JQ对象返回. 当我们调用Jquery方法时(如 html()),jq方法会遍历内部 dom数组,并调用每个dom元素的对应的dom属性或方法(如innerHTML),完成操作. 3.其中Jq方法遍历内部dom数组