<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Javascriptでカプセル化を実現する！ へのコメント</title>
	<atom:link href="http://yabooo.org/archives/53/feed" rel="self" type="application/rss+xml" />
	<link>http://yabooo.org/archives/53</link>
	<description>いずれにせよITで世界征服をたくらむ悪の組織です。</description>
	<lastBuildDate>Fri, 08 May 2009 22:44:14 +0900</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>日本野望の会－Yabooo.org &#187; Javascriptでカプセル化のコスト &#124; より</title>
		<link>http://yabooo.org/archives/53/comment-page-1#comment-13</link>
		<dc:creator>日本野望の会－Yabooo.org &#187; Javascriptでカプセル化のコスト &#124;</dc:creator>
		<pubDate>Thu, 07 Feb 2008 12:29:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.yabooo.org/archives/53#comment-13</guid>
		<description>[...] Javascriptでカプセル化を実現する！の続編みたいなものです。 [...]</description>
		<content:encoded><![CDATA[<p>[...] Javascriptでカプセル化を実現する！の続編みたいなものです。 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>hiroki_daichi より</title>
		<link>http://yabooo.org/archives/53/comment-page-1#comment-9</link>
		<dc:creator>hiroki_daichi</dc:creator>
		<pubDate>Sun, 03 Feb 2008 08:21:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.yabooo.org/archives/53#comment-9</guid>
		<description>cyokodogさん、そのとおりです。
トレードオフといえばそれまでですが、
さらに問題は、生成したあとのオブジェクトにprototypeベースで関数を追加した場合に
内部データにアクセスできないということも確かです。

この問題は専用の関数を用意すれば解決しますが、
複雑さは増します。

ECMAscriptのより高いバージョンでは、文法レベルでいろいろと提供されているので
解決するかもしれません。

Object.prototype.test=function(){alert(&quot;hello&quot;)};
var t1={val:2};
var t2={val:1};

console.log(t1.test===t2.test);//true

var Class=function(){
    this.test=function(){alert(&quot;hello!&quot;);}
}
var c1=new Class();
var c2=new Class();

console.log(c1.test===c2.test);//false</description>
		<content:encoded><![CDATA[<p>cyokodogさん、そのとおりです。<br />
トレードオフといえばそれまでですが、<br />
さらに問題は、生成したあとのオブジェクトにprototypeベースで関数を追加した場合に<br />
内部データにアクセスできないということも確かです。</p>
<p>この問題は専用の関数を用意すれば解決しますが、<br />
複雑さは増します。</p>
<p>ECMAscriptのより高いバージョンでは、文法レベルでいろいろと提供されているので<br />
解決するかもしれません。</p>
<p>Object.prototype.test=function(){alert(&#8221;hello&#8221;)};<br />
var t1={val:2};<br />
var t2={val:1};</p>
<p>console.log(t1.test===t2.test);//true</p>
<p>var Class=function(){<br />
    this.test=function(){alert(&#8221;hello!&#8221;);}<br />
}<br />
var c1=new Class();<br />
var c2=new Class();</p>
<p>console.log(c1.test===c2.test);//false</p>
]]></content:encoded>
	</item>
	<item>
		<title>cyokodog より</title>
		<link>http://yabooo.org/archives/53/comment-page-1#comment-7</link>
		<dc:creator>cyokodog</dc:creator>
		<pubDate>Tue, 29 Jan 2008 15:42:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.yabooo.org/archives/53#comment-7</guid>
		<description>カプセル化した場合、コンストラクタ内でメソッドが定義されているので、new するたびfunctionが定義され、prototypeで定義するよりメモリを多くとられてしまうということはないのでしょうか？

var a=function(p){this.p=p;return this};
a.prototype.m=function(){alert(this.p)}
var aa=(new a(1)).m();
var aaa=(new a(2)).m();

↑この場合、メソッドmは同一のものを指すが、

var b=function(p){
　this.m=function(){
    alert(p);
  }
}
var bb=(new b(1)).m();
var bbb=(new b(2)).m();

↑この場合、new の度mメソッドを定義するので、メモリ上別々のfunctionとして管理されるのでしょうか？</description>
		<content:encoded><![CDATA[<p>カプセル化した場合、コンストラクタ内でメソッドが定義されているので、new するたびfunctionが定義され、prototypeで定義するよりメモリを多くとられてしまうということはないのでしょうか？</p>
<p>var a=function(p){this.p=p;return this};<br />
a.prototype.m=function(){alert(this.p)}<br />
var aa=(new a(1)).m();<br />
var aaa=(new a(2)).m();</p>
<p>↑この場合、メソッドmは同一のものを指すが、</p>
<p>var b=function(p){<br />
　this.m=function(){<br />
    alert(p);<br />
  }<br />
}<br />
var bb=(new b(1)).m();<br />
var bbb=(new b(2)).m();</p>
<p>↑この場合、new の度mメソッドを定義するので、メモリ上別々のfunctionとして管理されるのでしょうか？</p>
]]></content:encoded>
	</item>
</channel>
</rss>
