Skip to content

week10.md

stereomp3 edited this page May 11, 2021 · 9 revisions

download docx note 網頁設計第二周.docx



JavaScript 物件與類別

let和var的區別 let的作用範圍只在block,而var是在整區生效。 EX:

function varTest() {
  var x = 1;
  {
    var x = 2;  // 這裡的 x 與 function 區塊內部的 x 是一樣的,因此會影響 function 區塊內所有的 x
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  {
    let x = 2;  // 這裡的 x 與 function 區塊內部的 x 是不同的,只會作用在這層 block 區塊中
    console.log(x);  // 2
  }
  console.log(x);  // 1

error

上面這是物件搭配for的用法,可以將陣列裡的物件印出

error

This 是代表函式本身
上面的面積答案會有誤差是因為用的是浮點數(雙精度浮點數)運算

error

如果要做浮點數運算判斷的話,最好不要用等於,這很容易是bug的來源
用兩個差異的絕對值是不是最小判斷比較好 

EX :
error

Math是JavaScript的函示庫Math.abs是代表後面a-b的絕對值

歷史上有很多大災難的bug就是浮點數造成的,千萬不要用等於在浮點數上

error

上面的setRadius可以把r帶入之後再回傳circle所以後面可以再接他自己
JavaScript的寫法是

var c1 = new Circle(1);

但在C++ 的寫法是

Circle c1 = new Circle(1);

error

物件導向的好處是可以比較好看,好統整。
這邊的累加不用物件導向,就會很麻煩

物件導向有很多特性

封裝 (Encapsulation) 繼承 (Inheritance) 多型 (Polymorphism)


要寫網頁,或伺服器的話,基本上都要去買雲端,會給你伺服器流量

error

上面的Dog, Cat, Bird 都繼承在animal裡面,用得好的話,會讓程式變漂亮

在物件裡面的function一般都稱作method 

error

*
子類別需要在constructor()中呼叫super()來使用父類別的建構函(constructor)
有一點像共用事件
super() 只能在constructor()中執行

Clone this wiki locally