<?xml version="1.0" encoding="UTF-8"  standalone="yes" ?>
<rss version="2.0">
	<channel>
		<title>社群: Web Programming - 文件區(Object)</title>
		<description>台灣數位學習數位教學平台 RSS feed provider</description>
		<language>zh-tw</language>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doclist&amp;folderID=1015</link>
	<item>
		<title>function 中的 this</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=8636</link>
		<description>this 一般會指向 global，因此如果是物件，要特別小心要用 newfunction obj() {&amp;nbsp; this.value = &quot;v&quot;;}var o = obj(); &amp;nbsp; &amp;nbsp; &amp;nbsp;// 錯誤，this 指向 global, browser 中通常是 windowvar o = new obj(); &amp;nbsp;// this 指向物件解決方法 ~ 自我呼叫的建構式function obj() {&amp;nbsp; if (!(this instanceof obj)) {&amp;nbsp; &amp;nbsp; return new obj();&amp;nbsp; }&amp;nbsp; this.value = &quot;v&quot;;}   </description>
		<pubDate>Wed, 06 Jun 2012 12:15:12 +0800</pubDate>
	</item>
	<item>
		<title>Interface</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=4330</link>
		<description>Object.prototype.implements = function(funcName) {
&amp;nbsp; return this &amp;amp;&amp;amp; this[funcName] &amp;amp;&amp;amp; this[funcName] instanceof Function;
}
&amp;nbsp;
function isShape(obj) {
&amp;nbsp; return obj.implements(&quot;getArea&quot;); &amp;nbsp;//&amp;nbsp;檢查是否 implement getArea() 的介面&amp;nbsp;
}
&amp;nbsp;
function addAreas(s1, s2) {
&amp;nbsp;&amp;nbsp;if (isShape(s1) &amp;amp;&amp;amp; isShape(s2))
&amp;nbsp;&amp;nbsp;&amp;nbsp; return s1.getArea() + s2.getArea();
} </description>
		<pubDate>Sat, 05 Feb 2011 21:32:23 +0800</pubDate>
	</item>
	<item>
		<title>Reflection</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=4329</link>
		<description>instanceof
&amp;nbsp;
explore attributes &amp;amp; functions
function obj() {
&amp;nbsp; this.color = &quot;red&quot;;
&amp;nbsp; this.flavor = &quot;strawberry&quot;;
&amp;nbsp;&amp;nbsp;this.func = function() {};
}
&amp;nbsp;
var o = new obj();
for (var i in o)
&amp;nbsp; console.log(o[i]); </description>
		<pubDate>Sat, 05 Feb 2011 21:22:06 +0800</pubDate>
	</item>
	<item>
		<title>擴充內建類別</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=4328</link>
		<description>// 盡量不要擴充內建型別的原型，缺點主要是難以維護，尤其別人使用時Array.prototype.indexOf = function(obj) {
&amp;nbsp; var ret = -1;
&amp;nbsp; for (var i=0; i&amp;lt;this.length; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this[i] == obj) { ret = i; break; }
&amp;nbsp; return ret;
}
&amp;nbsp;
Array.prototype.contains = function(obj) {
&amp;nbsp; return (this.indexOf(obj) &amp;gt;= 0);
}
&amp;nbsp;
Array.prototype.append = function(obj, nodup) {
&amp;nbsp;&amp;nbsp;nodup = nodup || false;&amp;nbsp;&amp;nbsp;// default
&amp;nbsp; if (this.contains(obj) &amp;amp;&amp;amp; nodup) return;
&amp;nbsp;&amp;nbsp;this[this.length] = obj;
}
&amp;nbsp;
var num = [1, 2, 3, 4, 5];
num.append(6);   </description>
		<pubDate>Sat, 05 Feb 2011 20:37:53 +0800</pubDate>
	</item>
	<item>
		<title>Constructor, prototype</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=4327</link>
		<description>// object constructor functionfunction obj(name, size) {
&amp;nbsp; this.name = name;
&amp;nbsp; this.size = size;
}
&amp;nbsp;
obj.prototype.tellSize = function() {&amp;nbsp;return this.size;&amp;nbsp;}
var o1 = new obj();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // no color
obj.prototype.color = &quot;blue&quot;;
var o2 = new obj();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // has color   </description>
		<pubDate>Sat, 05 Feb 2011 20:28:34 +0800</pubDate>
	</item>
	<item>
		<title>繼承 (Inheritance)</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=4326</link>
		<description>http://www.dotblogs.com.tw/cloudio/archive/2008/09/26/5487.aspx&amp;nbsp;
&amp;nbsp;
var animal = function() {&amp;nbsp;&amp;nbsp;this.eat = function()&amp;nbsp; { alert(&quot;animal eat&quot;); }&amp;nbsp;&amp;nbsp;this.walk = function() { alert(&quot;animal walk&quot;); }}
&amp;nbsp;
var dog = function() {&amp;nbsp;&amp;nbsp;this.play = function() { alert(&quot;dog play&quot;); }&amp;nbsp;&amp;nbsp;this.walk = function() { alert(&quot;dog walk&quot;);&amp;nbsp;} }
&amp;nbsp;
dog.prototype = new animal;
&amp;nbsp;
var bill = new dog();bill.play();bill.eat();bill.walk(); </description>
		<pubDate>Sat, 05 Feb 2011 16:18:04 +0800</pubDate>
	</item>
	<item>
		<title>JSON</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=4325</link>
		<description>JSON (Javascript Object Notation)
var obj = {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // object {}
&amp;nbsp; key1: &quot;v1&quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // key: value
&amp;nbsp;&amp;nbsp;&quot;key 2&quot;: &quot;v2&quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &quot;k e y&quot;: value
&amp;nbsp;&amp;nbsp;ary: [1, 2, 3],&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // array []
&amp;nbsp;&amp;nbsp;aryObj: [
&amp;nbsp;&amp;nbsp;&amp;nbsp; {name: &quot;su&quot;, age: 10},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{name: &quot;liu&quot;, age: 12}
&amp;nbsp; ],
&amp;nbsp;&amp;nbsp;date: new Date(1605, 11, 05),&amp;nbsp; // evaluated dynamically
&amp;nbsp; sum: function(val) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // define a method
&amp;nbsp;&amp;nbsp;&amp;nbsp; return val + this.key1;
&amp;nbsp; }
} </description>
		<pubDate>Sat, 05 Feb 2011 12:08:47 +0800</pubDate>
	</item>
	<item>
		<title>基礎</title>
		<link>http://lms.xms.com.tw/board.php?courseID=100&amp;f=doc&amp;cid=4324</link>
		<description>
Associated array
&amp;nbsp;
var obj = new Object();&amp;nbsp; // create
obj.size = 12;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // attribute, dynamically
obj[&#039;size&#039;] = 12;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // equivalent to obj.size, associated array&amp;nbsp;
obj.show = function() {&amp;nbsp; // method
&amp;nbsp;&amp;nbsp;alert(this.size);
}
&amp;nbsp;
function foo() { ... }
obj.show = foo;&amp;nbsp;&amp;nbsp;&amp;nbsp; // pre-defined function </description>
		<pubDate>Sat, 05 Feb 2011 12:06:08 +0800</pubDate>
	</item>
	</channel>
	</rss>
