面向?qū)ο笮柎?/h2>
  • 1.面向?qū)ο蟮娜筇匦允鞘裁?請(qǐng)分別說明?
    • 01 封裝:
      使用對(duì)象來封裝函數(shù)和變量,對(duì)外提供對(duì)應(yīng)的接口。
      提供提高代碼的復(fù)用性,降低代碼的冗余度。
      信息隱藏,把方法內(nèi)部的實(shí)現(xiàn)隱藏起來,我們不需要關(guān)心內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。
  • 02 繼承:
    某個(gè)對(duì)象(子對(duì)象)獲得另外一個(gè)對(duì)象(父對(duì)象)的屬性和方法的行為。
  • 03 多態(tài):
    對(duì)于相同的操作(指令),不同的對(duì)象表現(xiàn)出不同的行為。
  • 2.為什么要使用面向?qū)ο缶幊?有哪些優(yōu)點(diǎn)?
  • 在更多的時(shí)候會(huì)更方便,復(fù)用性更高。
  • 3.構(gòu)造函數(shù)和原型對(duì)象的關(guān)系是什么?
  • 01 構(gòu)造函數(shù)默認(rèn)有一個(gè)相互關(guān)聯(lián)(prototype<->constructor)的對(duì)象,這個(gè)對(duì)象是原型對(duì)象。
  • 02 原型對(duì)象本身是一個(gè)對(duì)象(Object),只有一個(gè)屬性。
  • 4.說明自定義構(gòu)造函數(shù)創(chuàng)建對(duì)象的執(zhí)行過程?
1 提供一個(gè)構(gòu)造函數(shù)
    function Person() {
//var o = new Object();
//this = o;
// o.__proto__ = Person.prototype;
//o.__proto__.constructor  = Person;
2 在函數(shù)內(nèi)部通過this設(shè)置屬性和方法
        this.name = "張三";
        this.showName = function () {
            console.log(this.name);
        }
//return o;
    }
3 通過new 函數(shù)()創(chuàng)建對(duì)象
    var p1 = new Person();
  • 1 提供構(gòu)造函數(shù)
  • 2 通過this來設(shè)置屬性和方法
    1 創(chuàng)建空的對(duì)象var o = {}
    2 把空對(duì)象賦值給this
    3 設(shè)置原型對(duì)象 o.__proto__ = Person.Prototype
    4 設(shè)置原型對(duì)象的構(gòu)造器屬性o.__proto__.constructor = Person添加實(shí)例屬性
    5 使用this來設(shè)置成員
    6 把對(duì)象返回
    如果顯示return: 值類型(默認(rèn)創(chuàng)建的對(duì)象) + 引用類型(對(duì)象會(huì)被覆蓋)
  • 3 使用new來調(diào)用構(gòu)造函數(shù)
  • 5.面向?qū)ο蠛兔嫦蜻^程編程有什么區(qū)別?
  • 面向過程編程關(guān)注解決問題的具體步驟。
  • 面向?qū)ο缶幊剃P(guān)注解決問題需要的對(duì)象。
  • 6.構(gòu)造函數(shù)的原型對(duì)象的作用是什么?
  • 原型對(duì)象的成員會(huì)被構(gòu)造函數(shù)創(chuàng)建出來的所有對(duì)象共享。
  • 7.如何獲取構(gòu)造函數(shù)的原型對(duì)象[3]?
構(gòu)造函數(shù).prototype
對(duì)象.__proto__
Object.getPrototypeOf(對(duì)象)
  • 8.說明實(shí)例和實(shí)例化
  • 實(shí)例化:構(gòu)造函數(shù)創(chuàng)建對(duì)象的過程
  • 實(shí)例:構(gòu)造函數(shù)創(chuàng)建出來的對(duì)象,這個(gè)對(duì)象被稱為該構(gòu)造函數(shù)的一個(gè)實(shí)例。
  • 9. 請(qǐng)畫出下面代碼的結(jié)構(gòu)關(guān)系圖(包含proto和constructor)
 function Book (name,price,author,press) {
        this.name = name;
        this.price = price;
        this.author = author;
        this.press = press;
    }

    Book.prototype.typeName = "書籍";
    Book.prototype.sellAddress = ["新華書店","京東商城","卓越亞馬遜"];
    Book.prototype.read = function () {
        console.log("我的書名為:"+this.name+",作者為"+this.author+"....");
    };

    var b1 = new Book("聲名狼藉者的的生活","42.00","???,"北京大學(xué)出版社");
    var b2 = new Book("人性的枷鎖","49.00","毛姆","華東師范大學(xué)出版社");
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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