怎样用Javascript定义一个类

怎样用Javascript定义一个类 http://www.cnblogs.com/xcj26/archive/2013/04/08/3006023.html 其实Javascript中没有类这个定义,但是有类这个概念。很多人都写过这样的代码,对,没错,就是如下代码,清晰的不能再清晰了,就是一个关键字 function,然后定义一个方法名,方法名后紧跟一对括号。如果你在项目中写过这样的代码,那么祝贺你,你可以不费任何吹毛之力,就能一口气读完这篇博文了. function Print() { …… } 当我们在写c#代码,焦头烂额,无从下手的时候,至少我们还是可以厚着脸皮在老板的面前,敲出华丽的 class ***{},是的,没错,就这几个字符。殊不知这这几个字符体现出来的境界。说浅些,我会敲键盘写代码,说深些,我有可能理解了面向对象的编程,至少我会定义一个类。是这样的,c#中定义一个类是用class。 有一天,老板变态了,让我用Javascript来定义一个类,我无从下手呀,我平时都是用("."),("#")的人物呀,思考良久,我还模糊的记的document.getElementById("")这个东西,但是好像与Javascript的类扯不上关系呀。怎么办?问了google问百度啊,最后在一个角落,找到了定义Javascript类的E文。仔细一阅,难道这是一个坑吗?明明用function定义了一个方法,活生生的把它说成一个类,反复几次Google百度后,有点怀疑了,难道Javascript中定义一个类,真的是用function?其实没错,在Javascript中,定义一个类是用fucntion() *\*{}。不管是在学校的菜鸟,还是国外的顶级程序员,在这件事上是平等的,想定义一个Javascript的类,就必须得先敲下function **(){}。 在定义Javascript类上,表现形势上大家虽然是平等的,都是用function ***(){}。但实质上,确是蕴含着大量的学问。也许有些朋友到目前为止,是不是感觉我说的太简单了,那我们就在这个function上玩点花样。 function Dog(category, name, age) { this.Category = category; this.Name = name; this.Age = age; } 一个Javascript类就这样定义完成了,现在就可以自豪的说,我会面向对象的手法编定Javascript代码了。 类定义好了,那我们怎么样来用这个类呢?其实用法和C#的用法很像。 var dog01 = new Dog(“狗类”, “土狗”, 2); var dog02 = new Dog(“狗类”, “黄狗”, 5); 有些朋友要拍砖了,这么简单的东西,都拿出来说,那我们不妨再来进阶一下。我上边的代码,实例化了两个对象,一个是dog01,dog01下边那个是dog02。因为dog01的Cateogry太口语化了,我要修改为dog01.Categry = ‘犬类’,这样听起来是不是舒服多了,这是一个很简单的事,我们仅仅需要为dog01的Cateogry重赋值就可以了。我们修改了dog01的Cateory, dog02的Category会跟着变吗?答案是肯定的,不会变,如果有变,肯定有鬼。那我们有没有方法让dog01,dog02这些对象的Cateogry属性共用起来呢?也就是说当我修改了Category属性,不管是dog01,还是dog02都跟一样的变,我们不妨来这样写写。 <img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /> function Dog(name,age) { this.Name = “”; this.Age = “”; } Dog.prototype.Category = “狗类”; var dog01 = new Dog(“土狗”,2); var dog02 = new Dog(“黄狗”,5); alert(dog01.Category); alert(dog02.Category); Dog.prototype.Category = “犬类”; alert(dog01.Category); alert(dog02.Category); ...

Created 25256-02-25 · Updated 25256-02-25 · 1 min · 95 words · -

spring MVC 返回JSON数据(Spring3.0 MVC+Jackson+AJAX)

spring MVC 返回JSON数据 (Spring3.0 MVC+Jackson+AJAX) 本文本的框架为:SpringMVC 3.2.3 \ jackson 1.9.2 传统的返回JSON格式的AJAX,用的方法一般是: 在后台先把数据(Object)封装成JSON数据,再用HttpServletResponse返回。 本示例中,SpringMVC可直接支持JSON格式数据的返回。具体如下。 1、JAR包: SPRINGMVC包需的包,另外还需JACKSON的两个包。 jackson-core-asl-1.9.2.jar jackson-mapper-asl-1.9.2.jar 2、spring-servlet.xml中加入: Java代码 <img alt="收藏代码" src="http://angelbill3.iteye.com/images/icon_star.png" /> <!- 返回JSON模版 -> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > <property name="messageConverters"> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> </list> </property> </bean> 我们在SPRING的配置中加入了一个新的适配器: AnnotationMethodHandlerAdapter,通过这个适配器,我们配置了一个属性,messageConverters,其中mappingJacksonHttpMessageConverter这个Bean,它就是用来处理json数据转换的。 注: 我的项目中没有乱码现象,这样配即可,若有乱码现象,可以在MappingJacksonHttpMessageConverter的BEAN中配置supportedMediaTypes属性,是用于解决返回的乱码问题。 3、Controller中的使用 Java代码 <img alt="收藏代码" src="http://angelbill3.iteye.com/images/icon_star.png" /> @Controller public class SelectController { @Resource private TypeService typeService; @RequestMapping("/type") @ResponseBody public Object type(){ List<Type> typelist = this.typeService.getTypeByParentid(Const.TYPE_DAILY); return typelist; } } 在SpringMVC中可以在Controller的某个方法上加**@ResponseBody**注解,表示该方法的返回结果直接写入HTTP response body中。 ...

Created 21216-02-21 · Updated 21216-02-21 · 1 min · 139 words · -

D3

D3 D3 是最流行的可视化库之一,它被很多其他的表格插件所使用。它允许绑定任意数据到DOM,然后将数据驱动转换应用到Document中。你可以使用它用一个数组创建基本的HMTL表格,或是利用它的流体过度和交互,用相似的数据创建惊人的SVG条形图。D3-js D3.JS 基于javascript的图表展示库 先什么都不说。一起来看看d3.js神奇效果。 打开https://github.com/mbostock/d3/wiki/Gallery 这里有很多d3.js的Demo。 这个东西图表确实很不错吧? 简单介绍之前 先说明一点东西。 d3.js 只适合现代浏览器, (意思是说它对IE8已经IE8以下版本支持不好) 。但对IE9,chrome,FireFox,Opera 和基于webkit的苹果浏览器Safari都能支持。 图标是基于矢量图形的,采用svg进行画图。所以在了解d3.js之前你需要知道svg有关知识。看看这个就够了http://www.w3school.com.cn/svg/index.asp 如果你用d3.js,我就当你是一个有点点经验的程序猿了,不是菜鸟,所以。。。。懂一点Jquery那是必须的。。。 本系列博客将根据官方文档的介绍顺序来写。 重要的一点,本人也是一边学一边写,出现点错误是不可避免。若有发现,请指出。在博客后面留言就可以了。谢谢! 争取每周末更新两篇。(希望了解更多可点击此处) 好吧。有了以上说明,先下载一个d3.js (连js库都没有能说个j8) 下载地址http://d3js.org/d3.v3.zip 下载好了?? 国际惯例 Hello World <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Hello World</title> <script type="text/javascript" src="d3.v3.js"></script> </head> <body> </body> <script type="text/javascript"> function helloworld(){ d3.select("h1").html("Hello D3.js !"); /* 看到这个是不是觉得和Jquery很相似? d3的选择器使用Jquery差不多,当然没有Jquery那么强大了, 这就是为什么我在开篇会提到jquery,如果对Jquery有一定的了解那么 关于d3的选择器你也就会用了。 */ }; helloworld(); /*啰嗦一下,有点Jquery经验的请无视。 helloworld这个方法之所以在body标签后调用而不是在head标签中 是因为浏览器解析html文档 是按顺序解析,如果写在head标签中,那么当浏览器解析到d3.select("h1")时, d3会发现在解析过的html中找不到h1 DOM节点 也就无法正确选择到了。 至于怎么写在head标签中又可以在整个Html都加载后再执行请自行Google. */ </script> </html>

Created 20206-02-20 · Updated 20206-02-20 · 1 min · 78 words · -

javascript Location

javascript Location location.href 返回整个当前url,若对其赋值: location.href=“http://www.highya.com” 则跳转其url location.host 返回域名和端口号,如: www.highya.com:80 lcation.hostname 返回域名 location.port 返回端口 location.pathname 返回域名后第一个斜框后的字符串 location.hash 跳到本页的某个锚 location.search 取url?后的部分 location对象: location提供了关于当前打开窗口或者特定框架的url信息。一个多框架的窗口对象在location属性显示的是父窗口的URL,每个框架也有一个与之相伴的location对象。 hash属性: hash标注是一个url很好的习惯用法,它指定浏览器到一个位于文档中的anchor位置,相当于一个书签儿。 host属性: 描述渔歌url的主机名和端口,只有端口号是url的一个明确部分时,值中才包括端口号。 hostname属性: 一个典型的url的主机名是网络上服务器的名字,该网络存储有你的浏览器上可以查看的文档。对大多数Web站点来说,服务器名不仅包括域名,也包括www前缀,如果端口号是在url中特有的话,主机名并不包括,而是包括在host属性中。 href属性: 该属性提供一个指定窗口对象的整个url的字符串。 pathname属性: url的路径名部分由与服务器root (根) 卷相关的目录结构组成。根不是目录的一部分,如果url的路径是通向根目录中的一个文件,那么location.pathname属性就是 (/) 。 port属性: 端口号很少用到。当指向一个没有赋给域名的的站点的url中,可以用location.port属性获取该值,如果从一个url获取值并想用那个组建创建一个url,一定要包括服务器IP地址和段口号,IP地址和段口号之间用 (:) 分界。 protocol属性: 包括协议名,且后面紧跟着 (:) 分节目。 assign方法: assign(“url”)通过这个方法可以实现把一个新的url赋给location对象。当然你也可以采用直接赋值的方法来实现,或者location.href来导航到一个新的网页。采用assign的方法会使代码易维护。 reload方法: 这个方法可以把浏览器可能保存在内存中的元素 (在一段记录中) 的文档设置全部忽略掉,重新打开该文档,和浏览器上的刷新可不一样。它的效果好像是你选择了file菜单open file一样。当然如果你不想这样,不想这么做,有一个和这个方法比较类似的方法,就是history.go () 方法。 replace方法: 当用户从当前网页,跳转到别的网页,有时候是不是想让不能用后退按钮(Back)看到前一个网页,告诉你一个方法,就是采用location.replace(“url”)就可以实现这个功能。

Created 31316-10-31 · Updated 31316-10-31 · 1 min · 54 words · -

javascript 逻辑运算符

javascript 逻辑运算符 运算符优先级 优先级 运算符 结合性 1 ( )\[ \] . 从左到右 2 ! ~ ++ – 从右到左 3 * / % 从左到右 4 + - 从左到右 5 << >> »> 从左到右 6 < <= &gt; >= instanceof 从左到右 7 == != 从左到右 8 & 从左到右 9 ^ 从左到右 10 | 从左到右 11 && 从左到右 12 | 从左到右 13 ? : 从左到右 14 = += -= *= /= %= &= |= ^= ~= <<= >>= »>= 从右到左 15 , 从右到左

Created 5056-11-05 · Updated 5056-11-05 · 1 min · 80 words · -

trim

trim 去除多余空格 trim:去除两边空格 lTrim:去除左空格 rTrim: 去除右空格 用法: var str = " hello “; str = str.trim();

Created 5056-11-05 · Updated 5056-11-05 · 1 min · 16 words · -