讀 YUI ,EXT等源碼的時候看JS天旋地轉,那可不是51JS上那種挪挪位置就能理解的,此刻如果沒有JavaScrip的基礎,更是像沒有星光的黑夜…….
自以為覺得Js對象是很好理解的東東,然而真實踐起來卻一片糊涂。
通過查閱經典書籍《Professional JavaScript For Web Developers》稍微有些理解了
JavaScript的基本類型
原始類型如: Undefined Null Boolean Number String 等 用 typeof方法能辨別之
引用類型如: Object Function Array Boolean Number String Date等,用insanceof方法辨別之
嚴格來講,JavaScript沒有對象(Object),但是由于和OO術語對應,所以也稱之為對象。所以Array,Function,基本類型,引用類型,函數,以及函數的屬性 等等這些都是對象。
而對象分類,則可以分為內置對象(Built-in Object) 和宿主對象(host object)。
內置對象如 Math,Data啊。
宿主對象則如 BOM,DOM之類.
重新回顧了下這些基本概念之后,在做簡單實踐就有些理解了。
因此對象的使用,創建方式不盡相同,最簡單的歸類如下:
1 基本創建方式
function Class() {
window.alert("Hello Class!");
}
var clz= new Class();
2 訪問對象成員
function Class(){
this.x = " this is x";
this.y = "this is y";
this.z = viewXY;
function viewXY(){
alert("x+","+y);
}
}
var clz= new Class();
clz.viewXY();
3 對象繼承
function Parent() {
this.type= "human!";
}
function Child(){
this.age = "26";
this.sex ="male";
this.say= myInfo;
function myInfo(msg){
alert(msg+this.type+ ","+this.age+","+this.sex);
}
}
Child.prototype = new Parent();
var clild = new Child();
clild.say("I'm ");
4.重用原對象 (書上的例子太好了,搬來了)
Funcion.prototype.toString() = function(){
return "Function code hidden";
}
function sayHi(){
alert("hi");
}
alert(sayHi.toString());