如何把Java Script写成类
2015-09-10 12:59
351 查看
mootools创建了一个dialog widget
Js代码
1. var Dialog = new Class({
2. Implements: Events,
3. initialize: function() {
4. },
5. show: function() {
6. // ....
7. this.fireEvent('show', this);
8. }
9. });
10.
11. var dialog = new Dialog();
12. dialog.addEvent('show', function() {
13. // ....
14. });
伦理片 http://www.dotdy.com/
-----------------------------------------------------------------------------------
方法一:
Js代码
if (!window.testClass)
{
testClass =
{
data:null, //类的属性
init: function() //类的方法
{
this.data=456;
alert("init")
}, // 注意逗号
show: function() //类的方法
{
alert("show:"+this.data)
}
}
}
调用方法:
testClass是类名
testClass.init();
testClass.show();
方法二:
Js代码
//////////////////////////////////////////////////////////////////////
//取得 指定元素的 子元素(特定) //
//子元素可以指定 name //
//子元素可以指定 tagName //
//返回集合 (指定name或tagName的子元素集合) //
//////////////////////////////////////////////////////////////////////
function Child_class(){
this.list_elment=new Array();
//取得指定元素的所有子元素中元素名为name的元素集合 (有name取name,无name取id )
this.getChildsByName=function(element,name){
var state="name";
return this.getChilds(element,name,state);
};
//取得指定元素的所有子元素中tagName为name的元素集合
this.getChildsByTagName=function(element,name){
var state="tagName";
return this.getChilds(element,name,state);
};
//state为"name",取得 指定元素的 name为name子元素
//state为"tagName",取得 指定元素的 tagName为name子元素
this.getChilds=function(element,name,state){
this.find(element,name,state);
return this.list_elment; //返回集合
};
//通用方法
this.find=function (element,name,state){
if(null==element){return ;}
var nodes=element.childNodes; //所有子元素
for(var i=0;i<nodes.length;i++){
if(nodes[i].nodeType==1){ //节点类型为1
var name_id="";
if(state=="name"){
name_id=nodes[i].name==null?nodes[i].id:nodes[i].name; //有name取name,无name取id
}else if (state=="tagName"){
name_id=nodes[i].tagName;
}else{
alert("请传参数,指定按name或tagName搜索元素!");return ;
}
if(name_id==name){
this.list_elment.push(nodes[i]); //加入集合
}
var bl=nodes[i].hasChildNodes(); //有无下一层子元素
if(bl){
this.find(nodes[i],name,state); //递归
}
}
}
};
}
//调用方法如下:
//var c=new Child_class();
//var oForm=document.getElementById('oForm');
//var rs=c.getChildsByName(oForm,"m");
//alert(rs.toString());
Js代码
1. var Dialog = new Class({
2. Implements: Events,
3. initialize: function() {
4. },
5. show: function() {
6. // ....
7. this.fireEvent('show', this);
8. }
9. });
10.
11. var dialog = new Dialog();
12. dialog.addEvent('show', function() {
13. // ....
14. });
伦理片 http://www.dotdy.com/
-----------------------------------------------------------------------------------
方法一:
Js代码
if (!window.testClass)
{
testClass =
{
data:null, //类的属性
init: function() //类的方法
{
this.data=456;
alert("init")
}, // 注意逗号
show: function() //类的方法
{
alert("show:"+this.data)
}
}
}
调用方法:
testClass是类名
testClass.init();
testClass.show();
方法二:
Js代码
//////////////////////////////////////////////////////////////////////
//取得 指定元素的 子元素(特定) //
//子元素可以指定 name //
//子元素可以指定 tagName //
//返回集合 (指定name或tagName的子元素集合) //
//////////////////////////////////////////////////////////////////////
function Child_class(){
this.list_elment=new Array();
//取得指定元素的所有子元素中元素名为name的元素集合 (有name取name,无name取id )
this.getChildsByName=function(element,name){
var state="name";
return this.getChilds(element,name,state);
};
//取得指定元素的所有子元素中tagName为name的元素集合
this.getChildsByTagName=function(element,name){
var state="tagName";
return this.getChilds(element,name,state);
};
//state为"name",取得 指定元素的 name为name子元素
//state为"tagName",取得 指定元素的 tagName为name子元素
this.getChilds=function(element,name,state){
this.find(element,name,state);
return this.list_elment; //返回集合
};
//通用方法
this.find=function (element,name,state){
if(null==element){return ;}
var nodes=element.childNodes; //所有子元素
for(var i=0;i<nodes.length;i++){
if(nodes[i].nodeType==1){ //节点类型为1
var name_id="";
if(state=="name"){
name_id=nodes[i].name==null?nodes[i].id:nodes[i].name; //有name取name,无name取id
}else if (state=="tagName"){
name_id=nodes[i].tagName;
}else{
alert("请传参数,指定按name或tagName搜索元素!");return ;
}
if(name_id==name){
this.list_elment.push(nodes[i]); //加入集合
}
var bl=nodes[i].hasChildNodes(); //有无下一层子元素
if(bl){
this.find(nodes[i],name,state); //递归
}
}
}
};
}
//调用方法如下:
//var c=new Child_class();
//var oForm=document.getElementById('oForm');
//var rs=c.getChildsByName(oForm,"m");
//alert(rs.toString());
相关文章推荐
- 冒泡排序算法原理及JAVA实现
- java3
- 什么导致了Context泄露:Handler&内部类
- eclipse中查看storm0.9.3示例代码storm-start-05.docx
- SysLog简介和java操作实例
- Java实现图的遍历(深搜与广搜)
- java简单的输入语句(字符串)
- JAVA基础应用——POI操作Excel
- PWC6345: There is an error in invoking javac
- Spring MVC 总结一(spring mvc 基本例子)
- java-list去除重复的对象
- Eclipse JAVA文件注释乱码
- java 排序算法--冒泡排序
- MyEclipse使用汇总——MyEclipse10设备SVN插入
- Java简单的输入语句练习(整型数据)
- java 值交换
- java类文件的单元测试
- java设计模式系列--单例模式
- Java7线程学习笔记(一)
- java中文所占字节数