复制代码 代码如下:
var obj = document.getElementById("name");
function clickMe() {
alert(this.value);
this.value += "!!!!";
alert(this.value);
}
var ActionBinder = function() {//定义一个类
}
ActionBinder.prototype.registerDOM = function(doms) {
this.doms = doms;//注册doms
}
ActionBinder.prototype.registerAction = function(handlers) {
this.handlers = handlers;//注册一个动作
}
ActionBinder.prototype.bind = function() {
this.doms.onclick = this.handlers
}//注册doms的动作
var binder = new ActionBinder();//按照ActionBinder的方法新建一个类
binder.registerDOM(obj);
binder.registerAction(clickMe);
binder.bind();
先上一段用js写的面向对象的代码,先建立一个ActionBinder的类,写法上也类似于java;因为js是基于html的dom对象来操作html的内容,在类中定义一个注册dom的方法registerDOM,用prototype将该方法原型化,方便调用;另外再增加一个注册事件的方法registerAction,也用prototype方法原型化;最后再用一个原型化的动作bind将已注册的dom和已注册的事件绑定在了一起,并执行。
再上一段原始的js代码片段:
Code
复制代码 代码如下:
<body>
<script>
document.onload= function(){
var obj = document.getElementById("name");
obj.onclick = function(){alert(this.value);}
}
</script>
<input type="text" id="name" />
</body>
代码也实现了要的效果,对于一些简单的应用,上面那段效果能够满足,但对于比较复杂的一些程序,应用起来就比较麻烦,代码上写起来也较繁琐;如代码片段
Code
复制代码 代码如下:
<body>
<script>
document.onload= function(){
obj1 = document.getElementById("name1");
obj2 = document.getElementById("name2");
obj3 = document.getElementById("name3");
obj1.onclick = function(){alert(this.value);}
obj2.onclick = function(){alert(this.value);}
obj3.onclick = function(){alert(this.value);}
}
</script>
<input type="text" id="name1" value="111" />
<input type="text" id="name2" value="222" />
<input type="text" id="name3" value="333" />
</body>
或者
Code
复制代码 代码如下:
<body>
<script>
function clickMe(){alert(this.value);}
</script>
<input type="text" id="name1" value="111" onclick="return clickMe()" />
<input type="text" id="name2" value="222" onclick="return clickMe()" />
<input type="text" id="name3" value="333" onclick="return clickMe()" />
</body>
当然上面两段代码也有其他一些更简单的写法,总的来说还是出现很多冗余的代码。
用面向对象的方法写就比较灵活,如
Code
复制代码 代码如下:
<body>
<script>
window.onload = function() {
var objs = document.getElementsByTagName("input");
function clickMe() {
alert(this.value);
}
var ActionBinder = function() {//定义一个类
}
ActionBinder.prototype.registerDOM = function(doms) {
this.doms = doms;//注册doms
}
ActionBinder.prototype.registerAction = function(handlers) {
this.handlers = handlers;//注册一个动作
}
ActionBinder.prototype.bind = function() {
this.doms.onclick = this.handlers
}//注册doms的动作
for (var i=0;i<objs.length;i++ ){
var binder = new ActionBinder();//按照ActionBinder的方法新建一个类
binder.registerDOM(objs[i]);
binder.registerAction(clickMe);
binder.bind();
};
}
</script>
<input type="text" id="name" value="111"/>
<input type="text" id="name1" value="222"/>
<input type="text" id="name2" value="333"/>
</body>
这样就不会有冗余的代码,而且js逻辑上也比较清爽,对于多个事件的绑定还有待研究。
相关推荐:
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
ChatGPT全球宕机:人工智能的崩塌与未来的挑战,中国ai和美国ai教父
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇
SEO获客的秘诀:如何通过搜索引擎优化提升客户获取能力,厦门seo搜索优化排名
ChatGDP人工智能:未来科技赋能企业与个人的智能变革,如何用AI绘制人体
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
未来工作方式!AI在线工具让效率倍增,工作变轻松
摘要AI生成:高效工作的新时代利器
ChatGPT怎么有梯子?突破网络限制,轻松畅享AI智能,ai对唱音响
SEO结构优化:助力网站提升排名与流量的关键策略,杭州小网站推广哪家好做
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
ChatGPT桌面应用安装了,不能用?解决方案全攻略,让你轻松畅享AI助手!,绫波丽ai智能
AI一键生成原创文章,让创作更高效更轻松!
seo监控什么意思,seo数据监控 ,ai panda眼镜架
AI免费生成文章让创作变得轻松自如
ChatGPT当前不可用?背后的原因与解决方案全解析,ai propos
AI生成网页模板,轻松打造专业网站,ai网格画法
什么是seo方法,何为seo ,ai写作神器源码是什么
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
人工AI软件的未来:智能时代的创新驱动力
SEO运营工作是什么,seo公司运营 ,720516AI
SEO非常:如何利用SEO提升网站排名与流量,助力品牌快速成长,绥化短视频营销推广
seo要学什么语言,做seo需要什么语言 ,ai martino
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
OpenAI推出的GPT-4Turbo大幅降低了AI应用成本,推动了AI技术的普及化,ai*版
SEO导流:如何通过精准优化实现网站流量大爆发,网站优化优化怎么做
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
“曝光量扩大,助力品牌腾飞的秘密武器”,盐山网站优化免费咨询
AI代写文章:高效创作的新风尚
seo资源指的是什么,seo资料 ,绿眼AI
软件我在AI:改变未来的智能助手
《权重参谋:让您的网站轻松登顶搜索引擎的秘密武器》,设计微信社群私域营销推广简案
WPQQ-开启数字时代的智能连接新纪元,杭州网站推广厂家电话
SEO更多-让你的企业站点在搜索引擎中脱颖而出,如何结交seo大神
SEO要求:如何优化网站提升搜索引擎排名,助力企业获取更多流量,鹤山区网站运营推广
OpenAIGPTChatSoraOpenAIChatGPT服务在中断数小时后已恢复,ai视图线稿
SEO符合:提升网站排名的秘诀,助力企业赢在搜索引擎优化的赛道,优化没续费 网站没了
AI网页效果生成:开启网站设计的新纪元,ai画线祥云
SEO优化攻略:如何通过精准策略提升网站排名与流量,aI ow翻译
仿写AI:智能时代的创作革命,洛江区移动房网站推广
自动生成文章的AI软件,助力内容创作的未来
seo能解决什么问题,seo会遇到哪些问题 ,挚爱花嫁ai
ChatGPT可以实现新闻报道的即时自动化生成,怎么更改ai2的图标
SEO联系:如何通过SEO优化提升您的网络营销效果,企业营销推广获客
SEO重要性与企业互联网发展的必由之路,互联网营销推广平台设计
为什么新手做seo好做,为什么要懂seo ,ai少女 3060显卡
zblog站群,zblog怎么样 ,欧卡2ai汽车如何使用
亚马逊的seo是什么阿,亚马逊seo项目 ,中考用ai写作会判0分吗
为什么选择老域名工具?提升网站SEO与品牌影响力的秘密武器,软文与seo文章区别
AI免费写作一键生成,效率与创意的完美结合