易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript设计模式_第二部分_链式调用

 链式调用是一个语法招数.包含两个部分:
1.一个创建HTML元素的对象的工厂
2.对这个HTML元素执行的操作的方法
[个人理解:将HTML元素包装成对象,在对象上添加方法(重点在return this)]
构造器
(function(){
//Use a private class
function _$(els){
this.elements = [];
for(var i=0; i<els.length; i++){
var element = els[i];
if(typeof element === "string"){
element = document.getElementById(element);
}
this.elements.push(element);
}
}
//
_$.prototype = {
each : function(fn){
for(var i=0; i<this.elements.length; i++){
fn.call(this,this.elements[i]);
}
return this;
},
setStyle : function(prop,val){
this.each(function(el){
el.style[prop] = val;
});
return this;
},
show : function(){
var that = this;
this.each(function(el){
that.setStyle("display","bloc");
});
return this;
},
addEvent : function(type,fn){
var add = function(el){
if(window.addEventListener){
el.addEventListener(type,fn,false);
}
else if(window.attachEvent){
el.attachEvent("on"+type,fn);
}
}
this.each(function(el){
add(el);
})
return this;
}
};
//the public interface remains the same
window.$ = function(){
return new _$(arguments);
}
})()

使用回调从支持链式调用的方法获取数据
链式调用很适合于赋值器方法,但对于取值器方法,你可能会希望它们返回你要的数据而不是返回this.
window.API2 = window.API2 || function(){
var name = "hell";
this.setName = function(newName){
name = newName;
return this;
};
this.getName = function(callback){
callback.call(this,name);
return this;
}
};
var o2 = new API2;
o2.getName(console.log).setName("Menw").getName(console.log);
  
 


相关文档:

Javascript 技巧大全(2)

POST代替FORM
<SCRIPT language="VBScript">
Function URLEncoding(vstrIn)
    strReturn = ""
    For i = 1 To Len(vstrIn)
        ThisChr = Mid(vStrIn,i,1)
        If Abs(Asc(ThisChr)) ......

javascript学习小结

 0.链接css文件和js文件
<link rel="stylesheet" href="../css/style.css" mce_href="css/style.css" type="text/css">
<mce:script language="javascript" src="../includes/jslib.js" mce_src="includes/jslib.js" ></mce:script>
1.关闭输入法

<input style="ime-mode ......

Javascript中最常用的55个经典技巧

 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......

怎样使用JavaScript存储Adobe AIR应用程序首选项

 本文来自:
http://articles.sitepoint.com/article/adobe-air-pref-javascript
 
在我 之前的帖子里,  我激动地开始了我的第一个AIR应用,叫做Harpoon, 仅使用HTML, CSS, 和JavaScript。我当时没时间讨论的一个特点就是,你可以使用一个XML文件存储和检索应用程序首选项。
......

[从jQuery看JavaScript]

  学习jQuery已经有半年时间了。在实际应用中,基础函数已经算是得心应手了。但是,对于我自己来说,还存在一个软肋——知其然而不知其所以然。而因为前面项目的压力等各方面的问题,我一直没有时间对此作补救的措施。
  现在终于决定要离职了,我又再次成为自己时间的真正主人。一直想做而没法做的事都要在 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号