2012年5月19日 星期六

How to list the properties of a javascript object

筆記 本篇參考stackoverflowHow to list the properties of a javascript object

要如何知道Javascript物件擁有哪些proerty?
ex:

var dog = {
  name: 'Lucky', 
  age: 3, 
  breeds: 'Shiba Inu'
};

上面是一個小狗的物件,裡面有一些自訂的屬性'name','age','breeds' 等等...

那要怎麼在程式中知道這些屬性呢?

比較新的瀏覽器(IE9, FireFox, Chrome...)可直接使用Object.keys這個方法

var keys = Object.keys(dog);
或者自己寫

var getKeys = function(obj){
   var keys = [];
   for(var key in obj){
      keys.push(key);
   }
   return keys;
}
var keys = getKeys(dog);

這樣 keys 就會是一個有所有屬性的陣列

keys = ["name", "age", "breeds"];

參考文章:

2012年5月16日 星期三

Javascript and this

筆記一個 javascript 的特性。

通常在使用一些 method 的時候參數都帶有 Callback Function,
ex: click(callbackFunction)

如果在這個 Callback Function 裡面直接使用 this 是沒有辦法的,
ex:
callbackFunction = function() {
  this.doSomethiing(); // undefined
}

必須先在在外層定義 this 為一個變數才可以,
ex:
var self = this;

callbackFunction = function() {
   self.doSomethiing(); // OK!!
}


參考文章 :
Javascript - 淺談this與Closure