①var nam =
②var man1 = {};
man1.name = "hkj";
man1.age = 20;
function man(name,age)
}var man2 = man("hkj",20);
function man(name,age)
}var man3 = new man3("hkj",20);
vat man4 = new man4("h",21);
alert(man3.age);
alert(man4.name);
由建構函式生成的物件都具有同乙個constructor屬性,指向建構函式
man3.construcor == man4.constructor == man
可用instanceof運算子判斷物件與類的關係
alert(man3 instanceof man);//true
缺點:每個不同物件都存在乙個相同的work方法,但每次生成物件時work都會生成一次,占用記憶體
prototype為建構函式的乙個屬性,指向另乙個物件,該物件所有屬性方法都會被建構函式例項繼承。一般用來存放公有方法和屬性。
function man(name,age)
man.prototype.work = function()
var man5 = new man("hkj",20);
man5.work();
alert(man.prototype.isprototypeof(man5)); //true 判斷prototype與例項之間的關係
alert(man.hasownproperty("name")); //true 判斷是否是本地屬性
alert("name" in man5); //true 判斷是否含有某個屬性
function people()
function man(name)
var man=new man("hkj");
alert(man.type);
function person()
function man(name)
man.prototype=new person(); //將man的prototype指向person例項
man.prototype.constructor=man; //手動糾正由上一行導致man的建構函式為person的錯誤
var man=new man("hkj");
alert(man.type);
function person(){}
person.prototype.type="人";
function man(){}
man.prototype = person.prototype;
man.prototype.constructor=man;
var man=new man();
alert(man.type);
缺點:man和person的prototype變成了同乙個,任何對子類的修改將影響到父類。而且後面的手動糾正也將person的建構函式變成了man的建構函式
function person(){}
person.prototype.type="人";
function man(){}
function f(){}
f.prototype=perosn.prototype;
man.prototype=new f();
man.prototype.constructor=man();
方法封裝:
function extend(child, parent) ;
f.prototype = parent.prototype;
child.prototype = new f();
child.prototype.constructor = child;
child.uber = parent.prototype; //連線child與parent,備用性質
}function extend2(child, parent)
c.uber = p;
}
js深入理解 一
1if a b 兩者等價 a b alert hello word 2.給eval取別名var a 111 var b eval var c b a alert c 輸出 111 3.刪除元素 不能刪除 var語句宣告的變數 var o delete o.x alert o.x 輸出 undefin...
js深入理解(二)
1.函式閉包var scope global scope function checkscope return f checkscope 輸出local scope var scope global scope function checkscope return f checkscope 輸出lo...
js深入理解(三)
1.物件的三個屬性 原型屬性 object.getprototypeof a 獲取a的原型 a.constructor.prootype 獲取a的原型 推薦 o.isprototypeof a 判讀o是否是a的原型 類屬性 function classof o classof o 輸出object ...