2014年5月29日木曜日

javascriptを再学習の4【javascriptのthis】


javascriptのthisはよくわからないんですが、(という設定で^^;)
とりあえず、assert関係をちょっと拡張です。
●assert.css
  1. function getProperties( object )  
  2. ul#resulter { border: 2px ridge maroon; background-color: #ccffcc; padding: 0.25em 1.5em; margin-left: 0; }  
  3. li.pass { color: #006400; font-weight:bolder;}  
  4. li.fail { color: #dc143c; text-decoration: line-through; font-weight:bolder;}  
  5. li.prop { color: #808000; font-weight:bolder;}  
●assert.js
まぁ無駄は多いですが、気にせずに。
  1. function getProperties( object )  
  2. {  
  3.     var ar = [];  
  4.     for( var pname in object ){  
  5.         var pvalue = object[ pname ];  
  6.         ar.push( pname + ' : ' + pvalue + "<" +  typeof(pvalue)  + ">" );  
  7.     }  
  8.     return  ar;  
  9. }  
  10. function assert(bbb, disp) {  
  11.  var resulter = document.getElementById("resulter");  
  12.  if (!resulter) {  
  13.   resulter = document.createElement('ul');  
  14.   document.getElementsByTagName('body')[0].appendChild(resulter);  
  15.   resulter.setAttribute('id','resulter');  
  16.  }  
  17.  var li = document.createElement("li");  
  18.  li.className = bbb ? "pass" : "fail";  
  19.  var disper = bbb ? "●" + disp : "×" + disp;  
  20.  li.appendChild(document.createTextNode(disper));  
  21.  resulter.appendChild(li);  
  22. }  
  23. function assertp( disp,bmem) {  
  24.  var resulter = document.getElementById("resulter");  
  25.  if (!resulter) {  
  26.   resulter = document.createElement('ul');  
  27.   document.getElementsByTagName('body')[0].appendChild(resulter);  
  28.   resulter.setAttribute('id','resulter');  
  29.  }  
  30.  var li = document.createElement("li");  
  31.  li.className = "prop";  
  32.  var disper = bmem ? "→" + disp : disp;  
  33.  li.appendChild(document.createTextNode(disper));  
  34.  resulter.appendChild(li);  
  35. }  
  36. function assertlist(list,name) {  
  37.  assertp( "------■" + name + "■------",false);  
  38.  for(var w=0;w<list.length;w++){  
  39.   assertp(list[w],true);  
  40.  }  
  41.  assertp( "--------------------");  
  42.   
  43. }  
  44. function assertprop(o,name){  
  45.  if(name == undefined) name = "unknown";  
  46.  assertlist(getProperties( o ),name);  
  47. }  
●つづく

0 件のコメント:

コメントを投稿