<?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>Tips &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/tips/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Tue, 11 Jan 2011 02:11:08 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>どう書いていますか？JavaScriptのクラス</title>
		<link>https://blog.mach3.jp/2011/01/11/class-for-javascript.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 11 Jan 2011 02:11:08 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1375</guid>

					<description><![CDATA[JavaScriptでのクラスの話は定期的に書いているネタな気がしますが、 自分でもなかなかスタイルが定まらないので、ちょっとメモなど。 基本的な形 プラグインとか書いた事もありましたが、 結局今は、こんなオーソドックス [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>JavaScriptでのクラスの話は定期的に書いているネタな気がしますが、<br />
自分でもなかなかスタイルが定まらないので、ちょっとメモなど。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TSs4NcUMq2I/AAAAAAAABJM/i5baOC0RKck/201101110145.png" alt="どう書いていますか？JavaScriptのクラス"/></figure>



<p></p>



<span id="more-1375"></span>



<h2 class="wp-block-heading">基本的な形</h2>



<p><a href="/2010/09/jquery-class-js.html">プラグインとか書いた</a>事もありましたが、<br />
結局今は、こんなオーソドックスな形に収まっています。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> Person = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> name </span>)</span>{
    <span class="hljs-comment">/* コンストラクタ */</span>
    <span class="hljs-keyword">this</span>.name = name;
};
Person.prototype = {
    <span class="hljs-attr">name</span> : <span class="hljs-literal">null</span>,
    <span class="hljs-attr">sayHello</span> : <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
        <span class="hljs-built_in">console</span>.log( <span class="hljs-string">"こんにちは！"</span> + <span class="hljs-keyword">this</span>.name + <span class="hljs-string">"です！"</span> );
    }
};
<span class="hljs-keyword">var</span> john = <span class="hljs-keyword">new</span> Person( <span class="hljs-string">"まっは"</span> );
john.sayHello(); <span class="hljs-comment">// "こんにちは！まっはです！"</span>
</code></span></pre>


<h2 class="wp-block-heading">プロパティにオブジェクトを使う</h2>



<p>オブジェクトに設定値をまとめてコンストラクタに引数で渡して～っていうのは結構頻出ですが、<br />
プロパティにオブジェクトを使いつつ、インスタンスを複数作りたい場合は注意が必要。<br />
普通に書いてしまうと、どのインスタンスもprototypeのメンバを参照してしまい、<br />
或るインスタンスで値を変えると、他のインスタンスでも変わってしまうという困った事になります。</p>



<p>こちらの記事がわかりやすかったです。</p>



<ul class="wp-block-list">
<li><a href="http://zudolab.net/blog/?p=536">zudolog » prototypeでメンバにオブジェクト指定してるとハマるかも</a></li>
</ul>



<p>そこで、上の記事を参考にこんな感じ書いておきます。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> Person = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> option </span>)</span>{
    <span class="hljs-keyword">this</span>.option = $.extend( {}, <span class="hljs-keyword">this</span>.option ); <span class="hljs-comment">// 重要！</span>
    <span class="hljs-keyword">this</span>.setOption( option );
};
</code></span></pre>


<p>コンストラクタ一行目、optionを空のオブジェクトに格納しなおして代入しています。<br />
こうすることで、インスタンス毎に別のオブジェクトを扱えるという寸法。なるほどなるほど。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">Person.prototype = {
    <span class="hljs-attr">option</span> : {
        <span class="hljs-attr">name</span> : <span class="hljs-literal">null</span>,
        <span class="hljs-attr">age</span> : <span class="hljs-literal">null</span>
    },
    <span class="hljs-attr">setOption</span> : <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> option </span>)</span>{
        $.extend( <span class="hljs-keyword">this</span>.option, option );
    },
    <span class="hljs-attr">sayHello</span> : <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
        <span class="hljs-built_in">console</span>.log(
            <span class="hljs-string">"こんにちは！"</span> + <span class="hljs-keyword">this</span>.option.name + <span class="hljs-string">"です！"</span> +
            <span class="hljs-string">"永遠の"</span> + <span class="hljs-keyword">this</span>.option.age + <span class="hljs-string">"歳です！"</span>
        );
    }
};

<span class="hljs-keyword">var</span> john = <span class="hljs-keyword">new</span> Person( { <span class="hljs-attr">name</span> : <span class="hljs-string">"ジョン"</span>, <span class="hljs-attr">age</span> : <span class="hljs-number">29</span> } ),
    tom = <span class="hljs-keyword">new</span> Person( { <span class="hljs-attr">name</span> : <span class="hljs-string">"トム"</span>, <span class="hljs-attr">age</span> : <span class="hljs-number">16</span> } );

john.sayHello(); <span class="hljs-comment">// "こんにちは！ジョンです！永遠の29歳です！"</span>
tom.sayHello(); <span class="hljs-comment">// "こんにちは！トムです！永遠の16歳です！"</span>
</code></span></pre>


<p>コンストラクタの一行目の処理がない場合、<br />
上の出力結果はどちらもトム16歳になってしまいます。</p>



<h2 class="wp-block-heading">カスタムイベントを使う</h2>



<p>AS3のdispatchEventみたくカスタムイベントを利用してみます。<br />
<a href="/2010/07/jquery-trigger-eventdispatcher.html">同じ内容を確か以前書きました</a>が、まとめの為、一応。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> Items = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> data </span>)</span>{
    <span class="hljs-keyword">this</span>.data = $.extend( &#91;], <span class="hljs-keyword">this</span>.data, data );
};
Items.prototype = {
    <span class="hljs-attr">EVENT_ADDED</span> : <span class="hljs-string">"added"</span>,
    <span class="hljs-attr">data</span> : &#91;],
    <span class="hljs-attr">add</span> : <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> value </span>)</span>{
        <span class="hljs-keyword">this</span>.data.push( value );
        $(<span class="hljs-keyword">this</span>).trigger( <span class="hljs-keyword">this</span>.EVENT_ADDED );
    },
    <span class="hljs-attr">bind</span> : <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> type, handler </span>)</span>{
        $(<span class="hljs-keyword">this</span>).bind( type, handler );
    }
};
</code></span></pre>


<p>といっても、自身を格納したjQueryオブジェクトからbind/triggerを呼び出してるだけですが…。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> MyItems = <span class="hljs-keyword">new</span> Items;
MyItems.bind( MyItems.EVENT_ADDED, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-built_in">console</span>.log( <span class="hljs-keyword">this</span>.data );
});

MyItems.add( <span class="hljs-string">"foobar"</span> ); <span class="hljs-comment">// &#91;"foobar"]</span>
</code></span></pre>


<p>イベントリスナの登録はbindを使います。<br />
addメソッドで値を追加すると、&#8221;added&#8221;イベントに着火される仕組み。</p>



<p>あまり頻繁に使う事もない気がしますが。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>と、こんな感じで書いておりますが、<br />
他の方がどのように書いているのかも知りたいところですね！</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>jQueryによるAjaxリクエストをサーバ側で検知する</title>
		<link>https://blog.mach3.jp/2010/11/02/detect-jquery-ajax.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 02 Nov 2010 06:31:28 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1047</guid>

					<description><![CDATA[jQueryでXmlHttpRequestを介してアクセスされたのかどうかを判別する方法です。 Ajaxで呼ばれた時とそうでない場合で出力を分けたりする時に使えそうですね。 Learning jQuery &#8211; [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>jQueryでXmlHttpRequestを介してアクセスされたのかどうかを判別する方法です。<br />
Ajaxで呼ばれた時とそうでない場合で出力を分けたりする時に使えそうですね。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TM7K99SgQjI/AAAAAAAABFA/TvsJOVLVVww/201011012311.png" alt="Detecting Ajax Events on the Server"/></figure>



<p></p>



<p><a href="http://www.learningjquery.com/">Learning jQuery &#8211; Tips, Techniques, Tutorials</a></p>



<span id="more-1047"></span>



<h2 class="wp-block-heading">簡単な仕組み</h2>



<p>ネタ元はこの記事です。<br />
<a href="http://www.learningjquery.com/2010/03/detecting-ajax-events-on-the-server">Detecting Ajax Events on the Server » Learning jQuery &#8211; Tips, Techniques, Tutorials</a></p>



<p>どうやらjQueryはXmlHttpRequestでリクエストをする際に<br />
「X-Requested-With」というヘッダに<br />
「xmlHttpRequest」という値を格納しているそうな。<br />
jQuery…なんという愛でしょう。</p>



<p>jQueryの素晴らしさを実感すると同時に、<br />
やはり一度はソースを熟読しておくべきだなぁと感じますね。<br />
参考になる設計手法とか、恐らく随所に見られる事でしょう！</p>



<h2 class="wp-block-heading">取得してみる</h2>



<p>PHPとRubyで、試しに取得してみました。</p>



<h3 class="wp-block-heading">PHP</h3>


<pre class="wp-block-code"><span><code class="hljs language-php">$xhr = ( @$_SERVER&#91;<span class="hljs-string">"HTTP_X_REQUESTED_WITH"</span>] === <span class="hljs-string">"XMLHttpRequest"</span> );
<span class="hljs-keyword">echo</span> ($xhr) ? <span class="hljs-string">"jQuery Ajax"</span> : <span class="hljs-string">"Requested Directly"</span> ;
</code></span></pre>


<h3 class="wp-block-heading">Ruby</h3>


<pre class="wp-block-code"><span><code class="hljs language-php">xhr = ( ENV&#91;<span class="hljs-string">"HTTP_X_REQUESTED_WITH"</span>] === <span class="hljs-string">"XMLHttpRequest"</span> )
<span class="hljs-keyword">print</span> (xhr) ? <span class="hljs-string">"jQuery Ajax"</span> : <span class="hljs-string">"Requested Directly"</span>
</code></span></pre>


<p>ちなみにこのヘッダが渡されるのは、あくまでもXMLHttpRequestを介して行われた通信だけです。<br />
それ以外のもの、例えばJSONP等の場合は渡されないので注意しましょう。<br />
（JSONPはscript要素を追加しているだけなので、XMLHttpRequestは使用していません）<br />
cf) <a href="/2010/10/jquery-jsonp.html">jQueryはJSONPの理解の妨げになるか？</a></p>



<p>ネタ元のブログも素晴らしいです！<br />
今回初めて知ったのですが、是非とも全てに目を通したいです。<br />
<a href="http://www.learningjquery.com/">Learning jQuery &#8211; Tips, Techniques, Tutorials</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>使ってますか「ファイル名を指定して実行」 : Windows Tips</title>
		<link>https://blog.mach3.jp/2010/10/26/windows-run-by-filename.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 26 Oct 2010 05:02:18 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=970</guid>

					<description><![CDATA[WindowsユーザーなWeb開発者にはごく当たり前なTipsかもしれませんが、 今回はWindowsのショートカット「ファイル名を指定して実行」の拡張方法のお話。 ショートカットでランチャーいらず。 「ファイル名を指定 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>WindowsユーザーなWeb開発者にはごく当たり前なTipsかもしれませんが、<br />
今回はWindowsのショートカット「ファイル名を指定して実行」の拡張方法のお話。<br />
ショートカットでランチャーいらず。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TMWhqyM5JBI/AAAAAAAABEc/Bhy6XdZL0U0/201010260024.png" alt="ファイル名を指定して実行"/></figure>



<p></p>



<span id="more-970"></span>



<h2 class="wp-block-heading">「ファイル名を指定して実行」とは</h2>



<p><em>「ファイル名を指定して実行」</em>というのは<br />
コマンドを入力することでプログラムを実行出来るダイアログボックスの事です。<br />
「calc」や「notepad」や「cmd」等々、Windowsを使っていれば結構使っているはず？<br />
以下のショートカットキーで呼び出す事ができます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Windowsキー＋R</p>
</blockquote>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TMWhrAywnRI/AAAAAAAABEg/vnabXFnIAH0/201010260025.png" alt="ファイル名を指定して実行"/></figure>



<p></p>



<p>例えば「calc」と入力してOK/Enterすると、<br />
Windows標準装備の超クールな計算機が立ち上がります。<br />
なぜcalcで計算機が立ち上がるのかというと、<br />
「パスが通っている場所」にcalc.exeがあるから。それだけ。</p>



<h2 class="wp-block-heading">使えるコマンドを増やそう</h2>



<h3 class="wp-block-heading">増やし方</h3>



<p>コマンドの追加方法は至ってシンプルで、<br />
パスが通っているフォルダにショートカットを作っておくだけ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ol class="wp-block-list">
<li>スタートメニュー>プログラムで好きなプログラムのショートカットをコピー</li>



<li>パスが通っている場所（例えばc:windows）にペースト</li>



<li>お好みの名前にリネーム</li>
</ol>
</blockquote>



<p>例えばPhotoshopのショートカットを「ps」という名前で保存しておけば、<br />
「ファイル名を指定して実行」&gt;「ps」で簡単に呼び出す事が出来ます。<br />
名前さえ覚えておけばランチャーいらずで何でも一発起動できますね。</p>



<h3 class="wp-block-heading">保存場所は自分で作ろう</h3>



<p>上の例ではc:/windowsなどと書きましたが、<br />
そんな所においてしまっては管理しづらい上に妙な物を弄ってしまわないか心配です。<br />
新たに作成したフォルダにパスを通して、そこで管理した方が安全です。</p>



<p>パスを通すのは簡単で、下記の場所の「Path」の項目に追記するだけ。<br />
あとは再起動すれば適用されるはずです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>「システムのプロパティ」&gt;「詳細設定」&gt;「環境変数」&gt;「Path」</p>
</blockquote>



<p>c:aliase等、分かりやすい場所が良いですね。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>よく使うアプリケーションはすぐ起動出来るようにしたい。<br />
作業効率上、できるだけキーボードから手を離したくない。<br />
そんな時に大変役立つ小技です。</p>



<p>また、パスを通しておけば「ファイル名を指定して実行」だけでなく、<br />
コマンドプロンプトからも一発起動出来るので、<br />
バッチファイル等を保存しておいても何かと便利ではないでしょうか。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
