高級1-面向對象、原型、練習創(chuàng)建對象方式

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

Object-oriented programming, 面向對象編程,以對象為基本,通過類和繼承,實現相應的功能,并通過實例化進行相應的操作。
特性

  • 封裝 :將類的使用和實現分開,只保留部分接口和方法與外界聯系
  • 繼承:子類自動繼承父類中的屬性和方法,并可以添加新的屬性和方法或者對部分的屬性和方法進行重寫,增加代碼的可重復性
  • 多態(tài): 指由繼承而產生的相關的不同的類,其對象對同一消息會做出不同的響應

問題2: 如何通過構造函數的方式創(chuàng)建一個擁有屬性和方法的對象?

function Person(name, age){
  this.name = name
  this.age = age
  this.sayName = function(){
    console.log(this.name)
  }
}
var person1 = new Person('Lon', '40')
console.log(person1)

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

每個函數都自動添加一個名稱為prototype屬性,這是一個對象
每個對象都有一個內部屬性 proto(規(guī)范中沒有指定這個名稱,但是瀏覽器都這么實現的) 指向其類型的prototype屬性,類的實例也是對象,其proto屬性指向“類”的prototype
實例可以通過prop訪問到其類型的prototype屬性,這就意味著類的prototype對象可以作為一個公共容器,供所有實例訪問。

問題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)建一個 Car 對象,擁有屬性name、color、status;擁有方法run,stop,getStatus

function Car(name,color,status){
            this.name = name
            this.color = color
            this.status = status
        }
        Car.prototype = {
            run: function(){console.log('run')},
            stop: function(){console.log('stop')},
            getStatus: function(){console.log(this.status)}

        }
        var car1 = new Car("xxx", "123", "abcd")

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

  1. ct屬性,GoTop 對應的 DOM 元素的容器
  2. target屬性, GoTop 對應的 DOM 元素
  3. bindEvent 方法, 用于綁定事件
  4. createNode 方法, 用于在容器內創(chuàng)建節(jié)點

效果

問題7: 使用木桶布局實現一個圖片墻

效果

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

相關閱讀更多精彩內容

  • 問題1: OOP 指什么?有哪些特性是面向對象編程(Object Oriented Programming,OOP...
    安石0閱讀 191評論 0 0
  • 1: OOP 指什么?有哪些特性面向對象程序設計(英語:Object-oriented programming,縮...
    24_Magic閱讀 337評論 0 0
  • 問題1: OOP 指什么?有哪些特性 面向對象編程特性: 把某個功能看成一個整體(對象),通過調用對象的某個方法...
    饑人谷_醉眼天涯閱讀 420評論 0 0
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,810評論 11 349
  • 問題1: OOP 指什么?有哪些特性問題2: 如何通過構造函數的方式創(chuàng)建一個擁有屬性和方法的對象?問題3: pro...

友情鏈接更多精彩內容