開発日記 003

今回掲載するのは'開発日記001'で掲載したプログラムに002の案を足した改良版のソースです。
プログラムの中身は引数で渡した文字列が、どういった種類のものなのかを判別するプログラムです。(idなのかクラスなのか、それとも新しくタグを作るのか?など)
jQueryの中身を少しのぞいたせいか、パクリ臭がカナリきつくなりました -_-
でもまぁ、仕方ないですよネ!私なんてこんなもんです。これを成長というのでしょう? -_-

今までは文字列を見分けるのにtestを使っていたんですが、charAt(~)というのを使うと、指定した文字数目に何という文字がある・・・などの指定ができるようです。
それから、一番変化があったのは、今までプロトタイプ内のプログラムの戻り値にはプロトタイプ自身を書いていたのですが、赤字の部分を書き加えることによって、プロトタイプ内の関数の戻り値がthisで自身を呼び出した場合、koonz.seを呼び出すようになるため戻り値をriturn thisで統一してもメソッドチェーンが有効になりました。

パクるんなら最初からjQuery使えよーとも思いましたが、なんでそうなるのかを試行錯誤しながら作っていくと勉強になって楽しいですネ、パズルゲームみたい ・。・ノ

( function( window ){
var document = window.document,
koonz = function( select, action ){
return new koonz.se.typ_selecter( select, action );
};
koonz.se = koonz.prototype = {
typ_selecter : function( select, action ){
//引数の種類がstringだった場合
if( typeof select == 'string' ){
//新しいHTMLエレメントを入力した場合
if( select.charAt( 0 ) == '<' && select.charAt( select.length-1 ) == '>' ){
alert('新しくエレメントを作成します。');
return this;
};
//HTMLのID名を入力した場合
if( select.charAt( 0 ) == '#' && select.length >= 2 ){
alert( 'ID :' + select.replace( /^(\.|#)/,'' ) + 'を取得します' );
return this;
};
//HTMLのclass名を入力した場合
if( select.charAt( 0 ) == '.' && select.length >= 2 ){
alert( 'class :' + select.replace( /^(\.|#)/,'' ) + 'を取得します' );
return this;
};
//id,classの指定がないタグそのもを指定した場合
/*if( selectに<,.,#などが使われていない場合 ){
alert( 'HTMLtag :' + select.replace( /^(\.|#)/,'' ) + 'を取得します' );
return this;
};*/
};
if( !select ){
alert('セレクタが設定されていません。っと・。・');
return this;
};
},
setload : function( se ){
window.onload = function( ){
se( );
};
},
};
koonz.se.typ_selecter.prototype = koonz.se;
window.koonz = koonz;
return this;
} )( window );
koonz( document ).setload(
function main(){
koonz('.div1');
}
);
Category: プログラム

コメント

コメントの投稿

トラックバック