Javascript 没有 private , public 访问权限设置的关键字,但是可以通过一定的技巧来模拟出相同的结果. 首先我们来看下面一行代码: var i = (1, 2, 3, 4, 5); 变量 i 最后的结果为 5. 这是逗号操作符的结果,也就是说返回最后的一个值,小括号改变了这行代码的优先级,否则 var i = 1, 2, 3, 4, 5; 会报错缺少标识符. var i = (1, 2, 3, 4, function(){ return 5 * 5;}); 变量 i 最后的结果为 一个函数, 返回结果 25. 这就是Javascript...
1. 定义js类 js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 代码如下:function ShapeBase() { this.show = function() { alert("ShapeBase show"); }; this.init = function(){ alert("ShapeBase init"); }; } 这个类里定义了两个方法:show和init, 需要注意的是这里用到了this来声明, 而不是var, ...
今天主要讨论如何在 JavaScript 脚本中实现数据的封装(encapsulation)。数据封装说的简单点就是把不希望调用者看见的内容隐藏起来。它是面向对象程序设计的三要素之首,其它两个是继承和多态,关于它们的内容在后面再讨论。 关于数据封装的实现,在 C++、Java、C# 等语言中是通过 public、private、static 等关键字实现的。在 JavaScript 则采用了另外一种截然不同的形式。在讨论如何具体实现某种方式的数据封装前,我们先说几个...
/* 对联广告调用 第一个参数为ID,第二个参数图片,第三个参数广告距离顶部的距离, 第四个参数表示左右(true代表左,false代表右),第五个参数对联广告的宽度 */ new float_ad("ad_l","<img src='/System/uploads/allimg/090504/2346400.gif' />",50,true,64); new float_ad("ad_r","<img src='/System/uploads/allimg/090504/2346400.gif' />",50,false,64); /* 漂浮广告调用 第一个参数中的url代表漂浮广告的图片URL地址(必选项),lin...
wbkt2t最近发现了一个新名词:闭包。(自己落后了,要好好学习才行),baidu、google看了一下原理和实例,也明白了闭包的强大。JQuery也把闭包发扬光大了,网上一些个人开发的框架都是用了闭包了功能。知道了闭包的原理和使用发放,于是自己小小试验了一把,带着疑惑:使用闭包有什么好处?不使用会出现什么后果?写下了以下代码,也希望大家给小弟一些解答 使用闭包: 实例1 代码如下:var $Darren; (function(){ var Obj={versio...
代码写的比较繁琐,很多方法用的很原始... 代码如下: */ function $(s){ return document.all?document.all[s]:document.getElementById(s); } function list_sort(list_id,btn1,btn2){ var list=$(list_id).getElementsByTagName("li"); var c_date=$(list_id).getElementsByTagName("span"); var content=$(list_id).getElementsByTagName("a"); var date=new Array(),con=new Array,date1=new Array(),con1=new Array...
代码如下://获取元素的样式值。 function getStyle(elem,name){ if(elem.style[name]){ return elem.style[name]; }else if(elem.currentStyle){ return elem.currentStyle[name]; }else if(document.defaultView&&document.defaultView.getComputedStyle){ name=name.replace(/([A-Z])/g,”-$1″); name=name.toLowerCase(); var s=document.defaultView.getComputedStyle(elem,”"); return s&&s.getPropertyValue(name); }else{...
图1(弹出一个div) 图2(弹出多个)构造函数: 代码如下:var DivWindow= function(popup/*最外层div id*/,popup_drag/*拖动div id*/,popup_exit/*退出按钮id*/ ,exitButton/*触发服务器端退出按钮id*/,varwidth,varheight,zindex){ this.popup =popup ; this.height =varheight ; //窗口高度,并没用来设置窗口高度宽度,用来定位在屏幕的位置 this.width =varwidth ; //窗口宽度 this.popup_exit=popup_exit; this.exitButton=e...
文件名StyleSheet.js 代码如下:// CssRule类由StyleSheet.getRule方法返回,不直接创建 function CssRule(rule) { this.rule = rule; this.style = rule.style; this.selectorText = rule.selectorText; this.index = null; } function StyleSheet() { var head = document.getElementsByTagName("head")[0]; //通过新建标签来创建新样式 /* 在此不用document.createStyleSheet来完成,是因为在FF下 如果未导入任何CSS文件的情况下...
代码如下:/**Form对象 封装了常用表单操作, Form.isChinese(str);验证str是否为中文 Form.urlEncode(str);url编码 Form.getFormElements(formid); 获取表单的元素数组 最常用的方法 Form.getForm(formid); 获取表单的数据字符串 */ var Form=function(){ //中文 this.isChinese=function(str){ return /[\u4e00-\u9fa5]/.test(str); } //非字母数字下划线 this.isSpecial=function(str){ return /\W/.test(str); } //地址编码 this...
这个时候我们最好是将cookie操作封装起来,便于重用啊 ===================== 代码如下:/** 类 Cookie 将此类放入用到的js文件中即可使用 1.add(name,value,100); 添加一个cookie 2.get(name); 3.remove(name); 用例: Cookie.add("sk","ss",3); alert(cookie.get("sk")); Cookie.remove("sk"); */ var Cookie=new function(){ //添加cookie this.add=function(name,value,hours){ var life=new Date().getTime(); life+=hours*1000...
因为ie的event是全局的而firefox的event是局部的,用起来不太方便,这个时候我们就要自己组装一下常用的event操作了,封装成类便于重用 代码如下:/** 类 Event 用法: Event.getEvent();获取 ie,firefox的event Event.getTarget();获取ie的srcElement或firefox的target Event.isIe();是否为ie Event.clientX(); 获取ie,fox的鼠标x坐标 Event.clientY();获取 ie,fox的鼠标y坐标 */ var Event=new function(){ this.toString=function(){...
很长一段时间以来(这里本人要幸灾乐祸地说),js是“一种点缀的作用,完成很有限的功能,诸如表单验证之类,其语言本身也一直被当作过程化的语言使用,很难完成复杂的功能。”。但是(这里本人要苦大仇深、痛心疾首地说),“而Ajax的出现使得复杂脚本成为必需的组成部分,这就对 JavaScript 程序设计提出了新的要求,很多Ajax应用开始利用JavaScript面向对象的性质进行开发,使逻辑更加清晰。事实上,JavaScript 提供了完善的机制...
1.xml的解析(javascript中): 具体代码如下,解析的结果root为Dom树。 代码如下:if (window.ActiveXObject){ var doc=new ActiveXObject("Microsoft.XMLDOM"); doc.async="false"; doc.loadXML(strXml); }else{ var parser=new DOMParser(); var doc=parser.parseFromString(strXml,"text/xml"); } var root = doc.documentElement; 2.xml的封装(javascript中): (该代码为将页面中table封装为一个xml) 代码如下:var xmlDo...
代码如下:function XMLObject() { this.isIE=true; if (window.ActiveXObject){isIE=true;}else{isIE=false;} var node_xml; var xmlDoc; if (isIE){ xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); } else{ if (document.implementation && document.implementation.createDocument){ xmlDoc = document.implementation.createDocument("","",null); } } xmlDoc.async = false; xmlDoc.resolveExternals = false; xmlDoc.val...