2012年3月30日金曜日

開発環境

独習JavaScript 高橋 和也 (著), 竹添 直樹 (著), 里見 知宏 (著) の第7章(オブジェクト指向プログラミング)7.6(スコープと名前空間)理解度チェック4を解いてみる。

その他参考書籍

4.

コード(TextWrangler)

var jp;
if(!jp){
  jp = {};
}
if(!jp.learnyourself){
  jp.learnyourself = {};
}
jp.learnyourself.AbstractStringSplitter = function(str,splitter){
  if(!str){
    throw new Error("文字列が指定されていません。");
  }
  this.str = str;
  this.splitter = splitter;
  this.array = this.getArray();
  this.i = -1;
}
jp.learnyourself.AbstractStringSplitter.prototype.getArray = function(){
  return this.str.split(this.splitter);
};
jp.learnyourself.AbstractStringSplitter.prototype.getNext = function(){
  this.i += 1;
  if(this.i == this.array.length){
    this.i = 0;
    return this.array[this.i];
  }
  return this.array[this.i];
};
jp.learnyourself.CommaStringSplitter = function(str){
  jp.learnyourself.AbstractStringSplitter.apply(this,[str,","]);
};
jp.learnyourself.CommaStringSplitter.prototype = new jp.learnyourself.AbstractStringSplitter("tmp","");
delete jp.learnyourself.CommaStringSplitter.prototype.str;
delete jp.learnyourself.CommaStringSplitter.prototype.splitter;
delete jp.learnyourself.CommaStringSplitter.prototype.array;
delete jp.learnyourself.CommaStringSplitter.prototype.i;
jp.learnyourself.CommaStringSplitter.prototype.constructor = jp.learnyourself.CommaStringSplitter;
jp.learnyourself.SlashStringSplitter = function(str){
  jp.learnyourself.AbstractStringSplitter.apply(this,[str,"/"]);
};
jp.learnyourself.SlashStringSplitter.prototype = new jp.learnyourself.AbstractStringSplitter("tmp","");
delete jp.learnyourself.SlashStringSplitter.prototype.str;
delete jp.learnyourself.SlashStringSplitter.prototype.splitter;
delete jp.learnyourself.SlashStringSplitter.prototype.array;
delete jp.learnyourself.SlashStringSplitter.prototype.i;
jp.learnyourself.SlashStringSplitter.prototype.constructor = jp.learnyourself.SlashStringSplitter;
var str = $('#t0').val();
var css = new jp.learnyourself.CommaStringSplitter(str);
var sss = new jp.learnyourself.SlashStringSplitter(str);
var splitters = [css,sss];
var result = "";
for(var i = 0 ; i < splitters.length ; i++){
  var array = splitters[i].getArray();
  for(var j = 0 ; j < array.length ; j++){
    result += j + ": " + array[j] + "<br >";
  }
  for(var k = 0 ; k < array.length * 2 ; k++ ){
    result += splitters[i].getNext() + "<br />";
  }
}
$('#pre0').html(result);


5.

外部ファイルに保存してHTMLから利用できるようにするには、

<script src="パス/外部ファイル名.js"><script&gr;

とHTMLに記述すればいい。

0 コメント:

コメントを投稿