Heim > Web-Frontend > js-Tutorial > 一种JavaScript的设计模式_javascript技巧

一种JavaScript的设计模式_javascript技巧

WBOY
Freigeben: 2016-05-16 19:24:04
Original
1054 Leute haben es durchsucht

一种JavaScript的设计模式 
//简单的类的设计模式
//定义一个类class1
function class1() {
  //构造函数
}

//通过指定prototype对象来实现类的成员定义
class1.prototype = {
  someProperty:"simple",
  someMethod:function {
    //方法代码
  },
  //其实属性和方法
}在一个类的成员之间互相引用,必须通过this指针来进行。因为在JavaScript中第个属性和方法都是独立的,它们通过this指针联系在一个对象上。 

//简单的带参数的事件设计模式
<script> <BR><!-- <BR>//将有参数的函数封装为无参数的函数 <BR>function createFunction(obj, strFunc) { <BR> var args = [];//定义args用于存储传递给事件处理程序的参数 <BR> if(!obj) obj = window;//如果是全局函数则obj=window; <BR> //得到传递给事件处理程序的参数 <BR> for(var i=2; i<arguments.length; i++) { <BR> args.push(arguments[i]); <BR> } <BR> //用无参数函数封装事件处理程序的调用 <BR> return function() { <BR> obj[strFunc].apply(obj, args);//将参数传递给指定的事件处理程序 <BR> } <BR>} <br><br>//定义类class1 <BR>function class1() { <BR> //构造函数 <BR>} <BR>class.prototype = { <BR> show:function() { <BR> //show函数的实现 <BR> this.onshow();//触发onshow事件 <BR> }, <BR> onShow:function() {}//定义事件接口 <BR>} <BR>//创建class1的实例 <BR>var obj = new class1(); <BR>//创建obj的onshow事件处理程序 <BR>function objOnshow(userName) { <BR> alert("hello,"+userName); <BR>} <BR>//定义变量userName <BR>var userName = "terry"; <BR>//绑定obj的onShow事件 <BR>obj.onShow=createFunction(null, "objOnshow", userName); <BR>//调用obj的show方法 <BR>obj.show(); <BR>//--> <BR></script>
通过createFunction封装,就可以用一种通用的方案实现参数传递。 
//一个简单的开发框架
<script> <BR> var http_request = false; <BR> function send_request(url) {//初始化、指定处理函数、发送请求的函数 <BR> http_request = false; <BR> //开始初始化XMLHttpRequest对象 <BR> if(window.XMLHttpRequest) { //Mozilla 浏览器 <BR> http_request = new XMLHttpRequest(); <BR> if (http_request.overrideMimeType) {//设置MiME类别 <BR> http_request.overrideMimeType("text/xml"); <BR> } <BR> } <BR> else if (window.ActiveXObject) { // IE浏览器 <BR> try { <BR> http_request = new ActiveXObject("Msxml2.XMLHTTP"); <BR> } catch (e) { <BR> try { <BR> http_request = new ActiveXObject("Microsoft.XMLHTTP"); <BR> } catch (e) {} <BR> } <BR> } <BR> if (!http_request) { // 异常,创建对象实例失败 <BR> window.alert("不能创建XMLHttpRequest对象实例."); <BR> return false; <BR> } <BR> http_request.onreadystatechange = processRequest; <BR> // 确定发送请求的方式和URL以及是否同步执行下段代码 <BR> http_request.open("GET", url, true); <BR> http_request.send(null); <BR> } <BR> // 处理返回信息的函数 <BR> function processRequest() { <BR> if (http_request.readyState == 4) { // 判断对象状态 <BR> if (http_request.status == 200) { // 信息已经成功返回,开始处理信息 <BR> alert(http_request.responseText); <BR> } else { //页面不正常 <BR> alert("您所请求的页面有异常。"); <BR> } <BR> } <BR> } <BR></script>

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage