[发明专利]一种使用一个选择符和至多一个参数处理javascript对象的方法无效
申请号: | 201310111731.9 | 申请日: | 2013-03-21 |
公开(公告)号: | CN103218421A | 公开(公告)日: | 2013-07-24 |
发明(设计)人: | 李宗申 | 申请(专利权)人: | 李宗申 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310014 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 一个 选择 至多 参数 处理 javascript 对象 方法 | ||
技术领域
本发明属于计算机浏览器javascript编程领域,具体涉及一种对javascript对象的操作的方法:只使用一个选择符和至多一个参数的情况下,快速访问和处理任意javascript对象的方法。
背景技术
随着Web开发的高速发展,人们对现代网页浏览的质量要求也越来越高,主流的Web前端开发语言为javascript脚本语言,然而由于javascript语言本身、各浏览器之间的不兼容等原因,使得处理各种javascript对象变得非常困难,这种情况下不得不编写大量的函数来满足某种特殊的要求。但就算于此,函数与对象之间没有本质的关联也使得管理和使用这些函数的高效性大打折扣。
因此,有必要提供一种方法来解决上述缺陷。
发明内容
本发明的目的在于克服现有技术的不足,提供了一种快速操作对象、对该对象的方法进行整合的方法。
为了实现上述目的,本发明的技术方案是:用现有的javascript技术模拟一个基类、一个入口类和众多子类并按照一定的方式组织其中的继承关系,从而达到处理任意javascript对象的目的。其中继承关系如下:
a.自定义StringObj类、NumberObj类、BooleanObj类、DateObj类、ArrayObj类、RegExpObj类、EventObj类等子类继承自ObjectObj基类。
b.自定义FunctionObj类继承自StringObj子类,间接继承自ObjectObj基类。
c.自定义入口类DomObj继承自FunctionObj子类,间接继承自StringObj子类、ObjectObj基类。
通过自定义一个选择符或带有一个参数的的形式进入本方法,例如:$(myObj),其中$符号为选择符,myObj为需要处理的参数。其后的处理步骤如下:
如果只有一个选择符没有参数,则直接调用常用扩展方法,如获取浏览器信息、执行Ajax操作、实例化自定义接口等等。例如:$.Ajax(“myUrl.php”,function(data){alert(data);});即可与myUrl.php页面进行Ajax交互。
如果选择符后面带有一个参数,则实例化入口类DomObj对此参数进行typeof类型判断。
如果参数是Number类型则返回自定义类NumberObj的实例,从而把对象控制权跳转到NumberObj类,进而对Number类型参数的处理函数就集中在了NumberObj类。例如:$(myNumber).toBoolean();把myNumber数字对象转换成Boolean类型。
如果参数是Boolean类型则返回自定义类BooleanObj的实例,把控制权交给BooleanObj来处理该对象。例如:$(myBool).decode(function(){alert(“true”);},function(){alert(“false”);});格式化myBool对象进行相应操作。
如果参数是String类型则默认尝试对该字符串按照CSS的标准规则进行DOM选择,并实例化入口类DomObj处理该字符串,由于DomObj间接继承自StringObj类,所以同样可以执行普通字符串相应的扩展操作。例如:$(“#myId”).scrollIntoView();可以选择HTML文档中ID为“myId”的元素,并把其滑动到可见视图内。再例如:$(“#myId”).repeat(3);可以返回字符串“#myId”的3个副本:“#myId#myId#myId”。
如果参数是Function类型则实例化DomObj并在DomObj中把其转换成onload函数,在页面加载完毕后执行,由于DomObj直接继承自FunctionObj类,所以也能对其进行一般性函数扩展操作,同时在实现扩展操作的内部取消onload函数的执行,达到与onload函数兼容的效果。例如:$(function(){alert(“onload”);});在页面加载完毕之后即执行该匿名函数。再例如:$(myFunction).setInterval(1000);可以对myFunction函数进行每一秒执行一次的操作,而其本身由于扩展函数在内部执行的时候已经取消了对应的window事件,所以其在页面加载完毕之后并不会执行。
如果参数是Object类型则对其进一步执行instanceof类型检查。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于李宗申,未经李宗申许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310111731.9/2.html,转载请声明来源钻瓜专利网。