{%hackmd tXTfhDH6QTWNg5QB_ZtSuw %}
# 第七節
---
# 物件(``object``)
----
## 這是個物件
```js
{
a:"b"
}
```
----
## 這也是個物件
```js
new Array();
```
----
## 所以物件只有這些?
----
## 創建物件
```js
const person = {
printIntroduction: function() {
console.log(`My name is Eason. here is my detail`,this);
}
};
const me = Object.create(person);
console.log(me)
me.printIntroduction();
```
----

---
# 請求(request)
----
## XMLHttpRequest
```js
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
};
xhttp.open("GET", "https://www.w3schools.com/xml/xmlhttp_info.txt", true);
xhttp.send();
```
請在 [https://www.w3schools.com](https://www.w3schools.com) 上測試
----
### 不然...

瀏覽器也不是笨蛋
---
# 敘句(``statments``)
----
## 前情提要
因為scope和block太難了,所以我們這裡統稱閉包比較快
----
## continue
```js
for(let i=0;i<5;i++){
if(i===2)continue;
console.log(i);
}
```
----
## break
```js
for(let i=0;i<5;i++){
if(i===2)break;
console.log(i);
}
```
----
## forin
```js
const object = { a: 1, b: 2, c: 3 };
for (const property in object) {
console.log(`${property}: ${object[property]}`);
}
// expected output:
// "a: 1"
// "b: 2"
// "c: 3"
```
----
## forof
```js
const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"
```
----
## switch
```js
const expr = 'Papayas';
switch (expr) {
case 'Oranges':
console.log('Oranges are $0.59 a pound.');
break;
case 'Mangoes':
case 'Papayas':
console.log('Mangoes and papayas are $2.79 a pound.');
break;
default:
console.log(`Sorry, we are out of ${expr}.`);
}
```
----
## with
已經被拋棄了,簡單帶過。
---
# 函式
----
## 建構函式
```js
function someCoolThing(a="墨西哥",b="公然挑釁在歷史課本中新增章節"){
this.a=a;
this.b=b;
this.speak=function(){
console.log(`${this.a}${this.b},中方對此有何回應?`);
console.log(`中方就這一問題已多次表明立場:中國堅持走和平發展道路,積極為維護世界和平穩定貢獻智慧力量。${this.a}的圖謀注定失敗。對於${this.a}的錯誤做法,中方必將采取有力的措施堅決予以反制,堅定地維護自身主權、安全、發展利益。希望${this.a}個別人士能以開放的心態和客觀公正的態度對待中國,不要無中生有。還是我們經常說的那句話,請${this.a}不要高估自己的造謠能力,也不要低估別人的判斷能力。謊言重覆一千遍,依然還是謊言。\n\n我要強調,中國內政不容任何外部反華勢力指手畫腳。我們敦促${this.a}懸崖勒馬,否則必將自食惡果,勿謂言之不預也!中國一向秉持和平共處五項原則處理國與國關系,歷來堅定奉行不幹涉內政原則,主張各國根據自身國情選擇發展道路。我要告訴${this.a}一些政客,人貴有自知之明,請他還是趁早反省一下${this.a}自身的問題,放棄偏見和執念,停止喋喋不休的反華聒噪。中方已就此向${this.a}提出嚴正交涉,表達強烈抗議。\n\n任何妄圖否定中國的社會主義制度、挑撥中國共產黨和中國人民關系的政治圖謀都注定不會得逞!${this.a}試圖挑撥中國共產黨和中國人民的關系,極其陰險。${this.a}自己不願意投入,卻千方百計幹擾破壞中國和其他國家開展合作。\n\n${this.a}這一惡劣行徑不僅損害中方利益,也會損害${this.a}自身的重要利益。我們奉勸${this.a}有關媒體和人士尊重已經明確無誤的事實和真相,恪守起碼的職業道德操守,放下意識形態偏見,摘掉有色眼鏡,不要再做不負責任、徒增笑柄的事情。中方正告${this.a},任何企圖破壞中國社會繁榮穩定、阻礙中國發展的圖謀都不會得逞,到頭來只會搬起石頭砸自己的腳。`);
}
}
```
[Geng Shuang Emulator](https://gengshuang1.github.io/)
----
```js
let k=new someCoolThing("某人","隨便做什麼事");
k.speak();
```
----
```js
someCoolThing.prototype.speak=function(){......};
```
----
```js
class someCoolThing {
constructor(a, b) {
this.a = a;
this.b = b;
}
speak() {
console.log(`${this.a}${this.b},中方對此有何回應?`);
console.log(
`中方就這一問題已多次表明立場:中國堅持走和平發展道路,積極為維護世界和平穩定貢獻智慧力量。${this.a}的圖謀注定失敗。對於${this.a}的錯誤做法,中方必將采取有力的措施堅決予以反制,堅定地維護自身主權、安全、發展利益。希望${this.a}個別人士能以開放的心態和客觀公正的態度對待中國,不要無中生有。還是我們經常說的那句話,請${this.a}不要高估自己的造謠能力,也不要低估別人的判斷能力。謊言重覆一千遍,依然還是謊言。\n\n我要強調,中國內政不容任何外部反華勢力指手畫腳。我們敦促${this.a}懸崖勒馬,否則必將自食惡果,勿謂言之不預也!中國一向秉持和平共處五項原則處理國與國關系,歷來堅定奉行不幹涉內政原則,主張各國根據自身國情選擇發展道路。我要告訴${this.a}一些政客,人貴有自知之明,請他還是趁早反省一下${this.a}自身的問題,放棄偏見和執念,停止喋喋不休的反華聒噪。中方已就此向${this.a}提出嚴正交涉,表達強烈抗議。\n\n任何妄圖否定中國的社會主義制度、挑撥中國共產黨和中國人民關系的政治圖謀都注定不會得逞!${this.a}試圖挑撥中國共產黨和中國人民的關系,極其陰險。${this.a}自己不願意投入,卻千方百計幹擾破壞中國和其他國家開展合作。\n\n${this.a}這一惡劣行徑不僅損害中方利益,也會損害${this.a}自身的重要利益。我們奉勸${this.a}有關媒體和人士尊重已經明確無誤的事實和真相,恪守起碼的職業道德操守,放下意識形態偏見,摘掉有色眼鏡,不要再做不負責任、徒增笑柄的事情。中方正告${this.a},任何企圖破壞中國社會繁榮穩定、阻礙中國發展的圖謀都不會得逞,到頭來只會搬起石頭砸自己的腳。`,
);
}
}
```
----
## arrow function
----
```js
var p=(a,b)=>(a+b);
var h=(a,b)=>{return a+b;};
```
{"metaMigratedAt":"2023-06-16T14:31:08.057Z","metaMigratedFrom":"YAML","title":"第七節","breaks":true,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"6d8efe8e-dbdf-4e5a-8c38-356b0d1df76d\",\"add\":2090,\"del\":1004},{\"id\":\"a6fc7cba-c9c5-42a4-854f-b3deb8636bea\",\"add\":4190,\"del\":1166}]"}