<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ほげぐらまの別館 &#187; JavaScript</title>
	<atom:link href="http://lain.heavy.jp/lain/category/computer/program/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://lain.heavy.jp/lain</link>
	<description>プログラムに限らずてきとーに、ね？</description>
	<lastBuildDate>Sat, 29 Aug 2015 14:47:38 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.7.41</generator>
	<item>
		<title>Javascriptすげぇ・・・・</title>
		<link>http://lain.heavy.jp/lain/2011/07/25/148</link>
		<comments>http://lain.heavy.jp/lain/2011/07/25/148#comments</comments>
		<pubDate>Sun, 24 Jul 2011 16:03:29 +0000</pubDate>
		<dc:creator><![CDATA[st.lain]]></dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://lain.heavy.jp/lain/2011/07/25/148</guid>
		<description><![CDATA[ここ最近仕事の関連でJavascript(jQuery)を使っています。自分がJavascriptを使っていたのはもう10年近く前のことなのですが、改めて使ってみると10年という間の進化は凄いものですね。 ってことでここ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>ここ最近仕事の関連でJavascript(jQuery)を使っています。自分がJavascriptを使っていたのはもう10年近く前のことなのですが、改めて使ってみると10年という間の進化は凄いものですね。</p>
<p>ってことでここ最近で覚えたこと。</p>
<ul>
<li>Javascriptの既定クラスの機能を拡張する  </li>
<li>jQueryへ”ヘルパ関数”を追加する ($.extend)  </li>
<li>jQueryへ”機能クラス”を追加する ($.fx.extend)  </li>
<li>IMPACTJSを拡張する (ig.Xxxx.inject)</li>
</ul>
<p>今回はその内の最初の既定クラスの機能拡張について。例えば、文字列に対してフォーマッター(printf(), format()のようなもの)が欲しい場合は以下のようにすると良いらしい。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:f5b90aa2-8c85-4549-8428-29a1968ae8b0" class="wlWriterEditableSmartContent">
<pre class="brush: javascript;">String.format = function() {
  var s = arguments[0];
  for (var i = 0; i &lt; arguments.length - 1; i++) {
    var reg = new RegExp("\\{" + i + "\\}", "gm");
    s = s.replace(reg, arguments[i + 1]);
  } 
  return s;
}
</pre>
</div>
<p>そして、よく使われる文字列の接頭辞、接尾辞が等しいかどうかを判断する関数は以下のようにすると良いらしい。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:4764a6b6-41c5-4eb8-a4aa-a5f2cf597597" class="wlWriterEditableSmartContent">
<pre class="brush: javascript;">String.prototype.endsWith = function (suffix) {
  return (this.substr(this.length - suffix.length) === suffix);
}

String.prototype.startsWith = function(prefix) {
  return (this.substr(0, prefix.length) === prefix);
}
</pre>
</div>
<p>というのが、私が愛するサイトの一つである<a href="http://stackoverflow.com/questions/1038746/equivalent-of-string-format-in-jquery">stackoverflow (Equivalent of String.format in JQuery)</a>に書いてる！</p>
<p>多分まとめるなれば</p>
<ul>
<li>クラス関数を追加する場合は”クラス名.関数名 = function() { 定義 }”とすればよい。
</li>
<li>インスタンス変数に関数を追加する場合は”クラス名.prototype.関数名 = function() { 定義 }”とすればよい。</li>
</ul>
<p>だと思います。endsWith(), startsWith()はそれぞれ別個で書いてありますが、jQueryの機能を使えば恐らくは以下のようにもに書けるのではないかな、思ったり。でも詳しくないから知らない。</p>
</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:662e66b8-b6a5-47a8-8f5c-dab784e10077" class="wlWriterEditableSmartContent">
<pre class="brush: javascript;">$.extend(String.prototype, {

endsWith: function(suffix) { 
  return (this.substr(this.length - suffix.length) === suffix);
}, 
startsWith: function(prefix) {
  return (this.substr(0, prefix.length) === prefix);
}

});
</pre>
</div>
<p>ってな感じなのですが、たま～に技術っぽいものを書くと違和感を覚える今日この頃。</p>
]]></content:encoded>
			<wfw:commentRss>http://lain.heavy.jp/lain/2011/07/25/148/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQueryを覚え始めてみる</title>
		<link>http://lain.heavy.jp/lain/2011/06/12/122</link>
		<comments>http://lain.heavy.jp/lain/2011/06/12/122#comments</comments>
		<pubDate>Sun, 12 Jun 2011 14:35:17 +0000</pubDate>
		<dc:creator><![CDATA[st.lain]]></dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://lain.heavy.jp/lain/2011/06/12/122</guid>
		<description><![CDATA[プログラマたるもの常に成長をしないといけないな～と思う一方でどうにも最近はプログラムタスク調整の作業も多くなってきたな～と思います。が、現在のプロジェクトはそんなことも言っていられないのでそれをこなしつつjQueryを覚 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>プログラマたるもの常に成長をしないといけないな～と思う一方でどうにも最近はプログラムタスク調整の作業も多くなってきたな～と思います。が、現在のプロジェクトはそんなことも言っていられないのでそれをこなしつつjQueryを覚えていかなければならないと。</p>
<p>自身、まだjQuery自体を良くわかっていませんがこんな感じなのかな(今更感ですが)。</p>
<ul>
<li>JavaScriptの高機能なライブラリ群</li>
<li>DOM操作のみならず、非同期コール(Ajax?)もサポートする</li>
</ul>
<p>Web開発はHTML5+CSS3+JavaScriptと言われていますが、実質JavaScript＝jQuery、という気がしてなりません。まだまだ初心者ですが初心者ながら進まないといけないので書籍に手を出してみるテスト。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:81867AAF-BB02-476b-AE5D-12BDAC2E750D:99f48f6b-88c0-4d54-8737-0c6f8e683865" class="wlWriterEditableSmartContent"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774143049/cagylogic-22/ref=nosim" target="_blank"><img alt="jQuery ポケットリファレンス (POCKET REFERENCE)" src="http://ecx.images-amazon.com/images/I/51KpJh7%2B7EL._SL160_.jpg"/><br />jQuery ポケットリファレンス (POCKET REFERENCE) 鶴田 展之 </a></div>
<p>&nbsp;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:81867AAF-BB02-476b-AE5D-12BDAC2E750D:83c341f1-81ab-420f-a864-f55d690e2ecd" class="wlWriterEditableSmartContent"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/487311358X/cagylogic-22/ref=nosim" target="_blank"><img alt="Ajaxアプリケーション &#038; Webセキュリティ" src="http://ecx.images-amazon.com/images/I/41ZJi0BBpBL._SL160_.jpg"/><br />Ajaxアプリケーション &#038; Webセキュリティ Christopher Wells </a></div>
<p>&nbsp;</p>
<p>処理的にはなるべくクライアント(ブラウザ側)で済ませたいですが、どうしても情報量の関係からサーバに通信せざるを得ません。仮にJSON形式でデータを返すにしてもクライアント側でその情報を改ざんしてポストされかねないとか、セキュリティ的にも頭を悩ませて・・・・。私、システムプログラマではないんですけどね、多分。<br /># でもみんなそろって私をシステム屋だという・・・</p>
<p>追加で、家電とコミックも買ってみるテスト。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:81867AAF-BB02-476b-AE5D-12BDAC2E750D:4f0c5fbb-f12d-4f5e-8ea8-a721ac543f51" class="wlWriterEditableSmartContent"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B003E2UU74/cagylogic-22/ref=nosim" target="_blank"><img alt="Panasonic 電気掃除機 クリスタルブルー MC-PA20W-A" src="http://ecx.images-amazon.com/images/I/41s4Cn0grkL._SL160_.jpg"/><br />Panasonic 電気掃除機 クリスタルブルー MC-PA20W-A </a></div>
<p>&nbsp;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:81867AAF-BB02-476b-AE5D-12BDAC2E750D:df528937-0341-471b-9e75-2fa3ab8501de" class="wlWriterEditableSmartContent"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4091228356/cagylogic-22/ref=nosim" target="_blank"><img alt="Waltz 4 (ゲッサン少年サンデーコミックス)" src="http://ecx.images-amazon.com/images/I/51IB1LT7PVL._SL160_.jpg"/><br />Waltz 4 (ゲッサン少年サンデーコミックス) 伊坂 幸太郎 大須賀 めぐみ </a></div>
<p>&nbsp;</p>
</p>
</p>
<p>うん、今月も散財プレイが楽しめそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://lain.heavy.jp/lain/2011/06/12/122/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>スマートフォンとかで思うこと</title>
		<link>http://lain.heavy.jp/lain/2011/05/05/23</link>
		<comments>http://lain.heavy.jp/lain/2011/05/05/23#comments</comments>
		<pubDate>Thu, 05 May 2011 09:19:18 +0000</pubDate>
		<dc:creator><![CDATA[st.lain]]></dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[Titanium]]></category>

		<guid isPermaLink="false">http://lain.heavy.jp/lain/2011/05/05/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0-%e3%82%b9%e3%83%9e%e3%83%bc%e3%83%88%e3%83%95%e3%82%a9%e3%83%b3%e3%81%a8%e3%81%8b%e3%81%a7%e6%80%9d%e3%81%86%e3%81%93%e3%81%a8/</guid>
		<description><![CDATA[仕事柄で携帯電話のプログラム関連にちょこっっっとだけ強くなった気がします、多分。当初はBrew®やi-Appli®から始まって今ではSNS系のブラウザアプリを扱ったりもするのですが・・・・。所感、ガラケのブラウザ祭りも限 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>仕事柄で携帯電話のプログラム関連にちょこっっっとだけ強くなった気がします、多分。当初はBrew®やi-Appli®から始まって今ではSNS系のブラウザアプリを扱ったりもするのですが・・・・。<br />所感、ガラケのブラウザ祭りも限界ですね。GREE, Mobageでは既にCMが完全スマフォを向いていますし、先日のGREEがOpenFeintを買収した記事を見れば力の入れようは一目瞭然。</p>
<p>この段階でいつまでも前のガラケーに固執することなく次の流れに移るとしたら自分としては次の技術あたりは割と狙うべきなのかな、と。</p>
<ul>
<li><a href="http://unity3d.com/">Unity3D</a> – PC(Win/Mac), iPhone, Android</li>
<li><a href="http://monotouch.net/">Mono系</a> – iPhone, Android</li>
<li><a href="http://www.appcelerator.com/">Titanium</a> – iPhone, Android</li>
<li><a href="http://www.phonegap.com/">PhoneGap</a> – iPhone, Android, BlackBerry, Windows Phone7, etc…</li>
</ul>
<p>個人的にはMono系とPhoneGap当たりが面白いです。Mono系はUI部分とロジック部分をうまく使い分けないとMonoTouch/Monodroid間の移植でそのメリットを生かせないですがそれだけの価値があるかな、と。<br />PhoneGapもJavaScriptながら、各種デバイスのAPIを叩いたり。また内部的にHTML5+CSSで動かせるゲームエンジンなんかも徐々に出ていたりします。<a href="http://www.kesiev.com/akihabara/">Akihabara</a>とかフリーのゲームエンジンがあったり(ただ、スマフォで動かすには結構重いんです)。</p>
<p>サーバ周りで言うとSymfony1.4系(PHP)を使っていたりしますが、そろそろSymfony2.0系に移る準備をしたり、ASP.netというMS系を触ってみたいな、と思うところもあったりと。いずれにしても常に勉強あるのみ、ですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://lain.heavy.jp/lain/2011/05/05/23/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
