1.js中的對象確實比較方便,類似c++中的類,可以包含方法和屬性,大大簡化了代碼和最佳化了代碼的管理。
對象的定義其實很簡單,就是定義一個該對象的建構函式。如:
function Card(name,address,work,home)
{
this.name = name;this.address="";this.work="";
}這樣就定義了一個對象,並且它的成員屬性包括name,work,address;
如果已經聲明了一個函數function a(){alert(this.name);};那麼在建構函式中增加一個 this.func1=a;於是該對象card就有了一個成員函數func1;其中的this均表示當前對象;
使用對象時就類似類了,要先聲明一個執行個體。如 var c1= new Card("d","c","f"); 於是c1.func1();
2.如何擴充內建對象,其實很簡單就是使用關鍵字prototyp;
eg。String.prototype.funcnew = func;於是string類就增加了一個函數funcnew(此處假設func是函數名);
使用對象我們可以更好的保持資料,甚至與資料庫進行結合更加方便;asp.net2.0中,更是可以利用ajax架構使伺服器側對象可以直接被用戶端使用;
同時對象中也可以包含更多個物件,對象可以作為數組元素等等;
3.js支援的控制語句除了 if else switch for while外 還支援do while,for in,break,continue;
同時支援冒號文法?:;支援邏輯運算式的短路。
書上說:比較子==,對不同類型數值進行比較時,較早版本會先轉換成一致的類型再進行比較,後期版本會直接認為不同。但是測試了一下 似乎都會轉換後再比較,這個有點搞不清楚了???(麻煩高手給個指點)
4.with關鍵字,with關鍵字用來指定一個對象,後面的語句塊中,對於每一條語句,沒有指定對象的屬性都將被認為是該對象的屬性
eg with(c1){name="aa";}//則name即為c1.name;
5.內建對象Math比較特殊,它的方法類似靜態方法,可以不聲明執行個體直接調用。如Math.cos(60);