Extjsイベントのobserver/listenerモード

2052 ワード

observer/listenerモードbuttonはobserverのインタフェースを実現し、イベントのfunctionが加入すると、functionがこのイベントのlistener配列に加入し、buttonがイベントが発生すると、イベントfunction配列のすべてのメンバーに通知し、実行する.イベントが発生している間にこのイベントにlistenerが追加(または削除)された場合(this.firing=true)、this.listeners=this.listeners.slice(0)copyは新しい配列になり、thisを操作します.Listeners、現在のloop button->component->observer reference:slice:
  var a;  
  a = new Array("a","b","c","d","e");  
   document.write(a.slice(0,3) + "<br>");  
   document.write(a.slice(-3,4) + "<br>");  
    document.write(a.slice(0,-1) + "<br>");  
    document.write(a.slice(1) + "<br>");  
  document.write(a.slice(4,3));  

var a;
a = new Array("a","b","c","d","e");
document.write(a.slice(0,3) + "<br>");
document.write(a.slice(-3,4) + "<br>");
document.write(a.slice(0,-1) + "<br>");
document.write(a.slice(1) + "<br>");
document.write(a.slice(4,3));

この例では、startからendまでのソース関数で指定された要素を含む新しい配列を返すSlice(start,[end])メソッドを使用しますが、a.slice(0,3)などのend要素は含まれません.startが負の場合、length+startとして処理されます.ここでlengthは、a.slice(-3,4)のような配列の長さであり、a.slice(2,4)に相当します.endが負の場合は、a.slice(0,-1)のような配列の長さのlength+endとして処理されます.endを省略すると、sliceメソッドは、a.slice(1)のようなソース配列の最後までコピーされます.endがstartの前に表示される場合、a.slice(4,3)などの新しい配列に要素はコピーされません.splice:splice():配列の任意の位置で要素を追加、削除または置換し、配列オブジェクトの詳細を直接変更します.splice()には3つのパラメータまたは3つ以上のパラメータがあり、最初の2つは必須です.後のパラメータはオプションで追加します:splice(開始項目、0、追加項目)削除します:splice(開始項目、削除する項目の個数)置換します:splice(開始項目、置換個数、置換項目)これは実は削除を追加する共通の結果です
コード:
 
var m=["am","bm"]
m.splice(1,0,"fm","sm");//        fm sm,  am,fm,sm,bm
alert(m);
m.splice(2,1);//         (    sm,  am,fm,bm)
alert(m);
m.splice(2,1,"mm");//         (    ,  am,fm,mm)
alert(m);