Posted in Javascript 筆記

Javascript – Objects

http://www.w3schools.com/js/js_object_definition.asp

http://javascriptissexy.com/javascript-objects-in-detail/

Javascript對我來說真的太困難了,所以要歸在筆記這一類,還真不好意思。

Javascript幾乎每件事都是物件,什麼啊?PHP的物件是class耶。

  1. 布林可以是物件 (或者原生資料也被視為物件)
  2. 數值可以是物件 (或者原生資料也被視為物件)
  3. 字串可以是物件 (或者原生資料也被視為物件)
  4. Dates一定是物件
  5. Maths一定是物件
  6. 正規表達式一定是物件
  7. Array一定是物件
  8. Function一定是物件
  9. Object一定是物件
//1~3的意思是指, 變數直接給定值, 該變數也會被視為物件.
//底下2個寫法是一樣的, 用第一種速度還會快些.
var a = "";
var a = new String();

Javascript的物件概念讓我霧煞煞。PHP的物件必須透物類別(class)實例化才能是物件,Javascript因為所有東西原本就是物件,所以不需要有實例化這種觀念,它透過3種方式生成物件。

  • Using an Object literal:{}內給定key跟value(稱作named value),這是該物件的properties,method也算是物件的property之一。
var person = {
    firstName: "John",
    lastName: "Doe",
    func: function() {}
};

//存取properties的方式
person.firstName;
person['firstName'];
person[變數];
  • Using the Javascript Keyword new:先定義成物件,再設定named value。
var person = new Object();
person.firstName = "John";
person.lastName = "Doe";
  • Using an Object Constructor:這個比較像是PHP的類別,先定義一個函數(它是物件阿),當成建構子,其他變數再透過這個函數來初始化成物件,好處在其他物件可以透過這個建構子來產生。還有this,真的跟PHP很像了。
function person(first, last) {
    this.firstName = first;
    this.lastName = last;
}

var myFather = new person("John", "Doe");
console.log(myFather.firstName); //印出John

 

One thought on “Javascript – Objects

  1. Pingback: ES6 – Class

Leave a comment