高級1 OOP及木桶布局

問題1: OOP 指什么?有哪些特性

面向?qū)ο蟪绦蛟O(shè)計(jì)(英語:Object-oriented programming,縮寫:OOP)是種具有對象概念的程序編程范型,同時(shí)也是一種程序開發(fā)的抽象方針。它可能包含數(shù)據(jù)、屬性、代碼與方法。對象則指的是類的實(shí)例。它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性,對象里的程序可以訪問及經(jīng)常修改對象相關(guān)連的數(shù)據(jù)。在面向?qū)ο蟪绦蚓幊汤?,?jì)算機(jī)程序會(huì)被設(shè)計(jì)成彼此相關(guān)的對象。

原則

  • 對于擴(kuò)展是開發(fā)的(open for extension),當(dāng)應(yīng)用的需求改變時(shí),我們可以對模塊進(jìn)行擴(kuò)展,使其滿足新的需求
  • 對于修改是封閉的(closed for modification),對模塊行為進(jìn)行擴(kuò)展時(shí),不必改動(dòng)模塊源代碼或者二進(jìn)制代碼

面向?qū)ο缶哂?strong>封裝性,繼承多態(tài)等特性:

  • 封裝:將相同屬性、方法、邏輯關(guān)系的模塊放在一起,通過限制只有特定類的對象可以訪問這一特定類,通常利用接口實(shí)現(xiàn)消息的傳入傳出
  • 繼承:在某種情況下,一個(gè)類會(huì)有“子類”。子類比原本的類(稱為父類)要更加具體化,子類會(huì)繼承父類的屬性和行為,并且也可包含它們自己的。
  • 多態(tài):是指由繼承而產(chǎn)生的相關(guān)的不同的類,其對象對同一消息會(huì)做出不同的響應(yīng)

如何通過構(gòu)造函數(shù)的方式創(chuàng)建一個(gè)擁有屬性和方法的對象?

代碼如下:

var Person= function ()  {
 this.name:  "Scofield"
 this.age: 23
}
NPC.prototype.say = function() {
console.log('hello')

var  NPC = new Person()

問題3: prototype 是什么?有什么特性

prototype表示原型對象。原型的屬性,在它所創(chuàng)建的對象實(shí)例中共享,當(dāng)JS程序讀取對象中屬性時(shí),首先讀取的是對象中定義的屬性,如果屬性不存在,則到對象的原型中搜索,這也體現(xiàn)JS的繼承擴(kuò)展特性

問題4:畫出如下代碼的原型圖

function People (name){
  this.name = name;
  this.sayName = function(){
    console.log('my name is:' + this.name);
  }
}

People.prototype.walk = function(){
  console.log(this.name + ' is walking');  
}

var p1 = new People('饑人谷');
var p2 = new People('前端');

問題5: 創(chuàng)建一個(gè) Car 對象,擁有屬性name、color、status;擁有方法run,stop,getStatus

    var Car = function(name,color,status) {
        this.name = name
        this.color = color
        this.status = status
    }
    Car.prototype.run = function () {
            console.log('I am runing')
        }
    Car.prototype.stop = function() {
            console.log('I am stop')
        }
    Car.prototype.getStatus = function() {
            console.log(this.status)
        }
    var car = new Car("auto","red","stop")
</script>

問題6: 創(chuàng)建一個(gè) GoTop 對象,當(dāng) new 一個(gè) GotTop 對象則會(huì)在頁面上創(chuàng)建一個(gè)回到頂部的元素,點(diǎn)擊頁面滾動(dòng)到頂部。擁有以下屬性和方法

代碼

木桶布局效果預(yù)覽

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,590評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342
  • 博客內(nèi)容:什么是面向?qū)ο鬄槭裁匆嫦驅(qū)ο竺嫦驅(qū)ο缶幊痰奶匦院驮瓌t理解對象屬性創(chuàng)建對象繼承 什么是面向?qū)ο?面向?qū)ο?..
    _Dot912閱讀 1,537評論 3 12
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,112評論 25 709
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,626評論 30 472

友情鏈接更多精彩內(nèi)容