麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > ASP > 正文

初學(xué)js者對(duì)javascript面向?qū)ο蟮恼J(rèn)識(shí)分析

2024-05-04 11:08:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
初學(xué)js者對(duì)javascript面向?qū)ο蟮恼J(rèn)識(shí)分析,需要學(xué)習(xí)的朋友可以參考下。
 
 
 
復(fù)制代碼代碼如下:

var obj = document.getElementById("name"); 
function clickMe() { 
alert(this.value); 
this.value += "!!!!"; 
alert(this.value); 

var ActionBinder = function() {//定義一個(gè)類(lèi) 

ActionBinder.prototype.registerDOM = function(doms) { 
this.doms = doms;//注冊(cè)doms 

ActionBinder.prototype.registerAction = function(handlers) { 
this.handlers = handlers;//注冊(cè)一個(gè)動(dòng)作 

ActionBinder.prototype.bind = function() { 
this.doms.onclick = this.handlers 
}//注冊(cè)doms的動(dòng)作 
var binder = new ActionBinder();//按照ActionBinder的方法新建一個(gè)類(lèi) 
binder.registerDOM(obj); 
binder.registerAction(clickMe); 
binder.bind(); 

先上一段用js寫(xiě)的面向?qū)ο蟮拇a,先建立一個(gè)ActionBinder的類(lèi),寫(xiě)法上也類(lèi)似于java;因?yàn)閖s是基于html的dom對(duì)象來(lái)操作html的內(nèi)容,在類(lèi)中定義一個(gè)注冊(cè)dom的方法registerDOM,用prototype將該方法原型化,方便調(diào)用;另外再增加一個(gè)注冊(cè)事件的方法registerAction,也用prototype方法原型化;最后再用一個(gè)原型化的動(dòng)作bind將已注冊(cè)的dom和已注冊(cè)的事件綁定在了一起,并執(zhí)行。 
再上一段原始的js代碼片段: 
Code 
復(fù)制代碼代碼如下:

<body> 
<script> 
document.onload= function(){ 
var obj = document.getElementById("name"); 
obj.onclick = function(){alert(this.value);} 

</script> 
<input type="text" id="name" /> 
</body> 

代碼也實(shí)現(xiàn)了要的效果,對(duì)于一些簡(jiǎn)單的應(yīng)用,上面那段效果能夠滿足,但對(duì)于比較復(fù)雜的一些程序,應(yīng)用起來(lái)就比較麻煩,代碼上寫(xiě)起來(lái)也較繁瑣;如代碼片段 
Code 
復(fù)制代碼代碼如下:

<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 
復(fù)制代碼代碼如下:

<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> 

當(dāng)然上面兩段代碼也有其他一些更簡(jiǎn)單的寫(xiě)法,總的來(lái)說(shuō)還是出現(xiàn)很多冗余的代碼。 
用面向?qū)ο蟮姆椒▽?xiě)就比較靈活,如 
Code 
復(fù)制代碼代碼如下:

<body> 
<script> 
window.onload = function() { 
var objs = document.getElementsByTagName("input"); 
function clickMe() { 
alert(this.value); 

var ActionBinder = function() {//定義一個(gè)類(lèi) 

ActionBinder.prototype.registerDOM = function(doms) { 
this.doms = doms;//注冊(cè)doms 

ActionBinder.prototype.registerAction = function(handlers) { 
this.handlers = handlers;//注冊(cè)一個(gè)動(dòng)作 

ActionBinder.prototype.bind = function() { 
this.doms.onclick = this.handlers 
}//注冊(cè)doms的動(dòng)作 
for (var i=0;i<objs.length;i++ ){ 
var binder = new ActionBinder();//按照ActionBinder的方法新建一個(gè)類(lèi) 
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> 

這樣就不會(huì)有冗余的代碼,而且js邏輯上也比較清爽,對(duì)于多個(gè)事件的綁定還有待研究。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一区二区三区视频在线 | 鲁丝一区二区二区四区 | 黄色片快播 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 舌头伸进添的我好爽高潮网站 | 一级电影在线观看 | 免费一级特黄毛片 | 九一传媒在线观看 | 欧美视频一级 | 免费黄色a | 国产精品色在线网站 | 国产精品久久久久影院老司 | 一级全毛片 | 狠狠操操| 久久久久国产成人精品亚洲午夜 | 操操操日日日干干干 | 欧美3p激情一区二区三区猛视频 | 黄网站在线播放视频免费观看 | 亚洲xxx视频 | 超碰人人做人人爱 | 欧美中文日韩 | 成年免费视频黄网站在线观看 | 中国女人内谢8xxxxxx在 | 国产一级毛片不卡 | 成人午夜视频免费在线观看 | 久久久久久久久久91 | av手机在线免费播放 | 久草在线播放视频 | 黄色毛片观看 | 精品亚洲夜色av98在线观看 | 狠狠操人人干 | 国产一级做a爱片在线看免 2019天天干夜夜操 | 久草在线视频新 | 中文字幕在线播放一区 | 国产日产精品一区二区三区四区 | 午夜小视频免费观看 | 黄色成人在线播放 | 国产人妖一区二区 | 久久久日韩精品一区二区 | 香蕉视频99 | 一级免费|