繼承 第二天

2022-09-16 16:12:14 字數 2047 閱讀 1566

繼承是物件導向的乙個核心概念,其他主要物件導向的繼承主要靠兩種方式實現繼承 一種是繼承 另一種是介面實現 

一.原型繼承

desk 的原型獲得是box()的例項和原型  以此類推

就近元則:先查詢例項有沒有該屬性 ,然後在查詢原型裡面是否還有該屬性

alert(desk instanceof box)     true
二.借用建構函式(物件冒充函式)

解決引用共享和超型別傳引數的問題

functon box(name,age)

box.prototype.family='家庭';

function desk()

var desk=new desk();

alert(desk.name);

alert(desk.family) 物件冒充解決了共享問題和傳引數的問題 但是只能繼承例項的問題 不能繼承原型 方法放在構造裡,浪費空間,每次例項化都分配位址

三.組合繼承(物件冒充繼承和原型繼承)

functon box(name,age)

box.prototype.run()

function desk()

desk.prototype=new box();

var desk=new desk();

alert(desk.name);

alert(desk.family)

alert(desk.run())

四.原型繼承

function obj(0)     用來儲存傳遞過來的物件

f.prototype=o;

return new f();

}var box=

var box1=obj(box) box1 等於new f();

alert(box1.family);

box1.push('弟弟')

alert(box1.family);

var box2=obj(box);

alert(box2.family); 引用型別屬性共享了

五.寄生式繼承(原型加工廠模式)

function obj(o)     用來儲存傳遞過來的物件

f.prototype=o;

return new f();

} function create(o)

return f;

}var box=

var box1=create(box);

alert(box1.name)

六寄生組合繼承

function create(box, desk) 

function box(name, age)

box.prototype.run = function ()

function desk(name, age)

//通過寄生組合繼承來實現繼承

create(box, desk); //這句話用來替代desk.prototype = new box();

var desk = new desk('lee', 100);

alert(desk.run());

alert(desk.constructor);

上班第二天

本想坐晚一班車的,誰知道這晚一班的也只是晚了 五 六分鐘,不高興再在站台上等,也只好小跑到車門上去了,果然,八點十分就到了。白天那個困啊 今天的工作內容和昨天一樣,做到後來我實在覺得測的差不多了,想幹些其他的,但這初來乍到的,也不好幹其他的呀,況且領導辦公室就在我旁邊。今天的工作總結有兩點 1 別把...

第二天實習

今天我早早到了銀行,開始給大家抹桌子,算是向愛妃學習吧。之後向wqy學習做表的方法,他很耐心。今天一天也就是做了這麼乙個表,但是還向dh學習了另外一些業務的處理,收穫不小。中午吃了雞腿 肉串和芸豆,好開心啊。我越來越喜歡自己的實習了。今天好多自己班上的同學來面試實習生,希望她們都能上!今天我沒有去同...

實習第二天

又是早起擠地鐵的一天 今天symphony說給我換了個導師,richard。於是我開始自己看,但是我並不清楚背景,不知道整個資料夾是幹什麼目的的,也不知道哪些檔案是需要看的。然後在richard的講解下,我慢慢明白了,終於知道我是幹啥的了,就是完善優化他們寫的自動化測試程式,首先是要看懂他們寫的。按...