国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于JS的面向?qū)ο蟮乃伎己涂偨Y(jié)

paulli3 / 2675人閱讀

摘要:面向?qū)ο缶幊痰膬?yōu)勢繼承多態(tài)封裝繼承獲取父類的全部數(shù)據(jù)和功能,實現(xiàn)的是復制。多態(tài)根據(jù)實現(xiàn)方法的對象,相同方法名具有不同的行為。封裝聚合對象數(shù)據(jù)和功能,以及限制它們和外界的聯(lián)系訪問權(quán)限。

面向?qū)ο缶幊痰母拍詈驮?/b> 1、面向?qū)ο缶幊淌鞘裁?/b>
它是用抽象的方式創(chuàng)建基于現(xiàn)實世界模型的編程模式(將數(shù)據(jù)和程序指令組合到對象中)
2、面向?qū)ο缶幊痰哪康?/b>
在編程中促進更好的靈活性和可維護性,在大型軟件工程中廣為流行。
3、面向?qū)ο缶幊痰膬?yōu)勢(繼承、多態(tài)、封裝)
繼承:獲取父類的全部(數(shù)據(jù)和功能),實現(xiàn)的是復制。
多態(tài):根據(jù)實現(xiàn)方法的對象,相同方法名具有不同的行為。
封裝:聚合對象數(shù)據(jù)和功能,以及限制它們和外界的聯(lián)系(訪問權(quán)限)。
JS中如何實現(xiàn)面向?qū)ο缶幊蹋▍⒖迹?/b> 1、原型鏈式繼承
function Person() {
    this.name = "per"
    this.obj = {
        name: ""
    }
}
Person.prototype.getName = function() {
    return this.obj.name
}
Person.prototype.setName = function(name) {
    this.name = name
    // 引用類型的賦值會同步給所有子類
    this.obj.name = name
}
function Student() {
    
}
Student.prototype = new Person()

const stu1 = new Student()
const stu2 = new Student()

stu1.setName("stu")
stu1.getName()
stu2.getName()
缺點:引用類型被修改時會同步給所有子類
2、構(gòu)造函數(shù)繼承
function Person() {
    this.obj = {
        name: "a"
    }
    this.setName = name => {
        this.obj.name = name
    }
    this.getName = () => {
        return this.obj.name
    }
}
function Student() {
    Person.call(this)
}
const stu1 = new Student()
const stu2 = new Student()
stu1.setName("stu")
stu1.getName()
stu2.getName()
缺點:父類的函數(shù)在子類下面是不共享的,相當于動態(tài)的復制了一份代碼
3、組合繼承
function Person() {
    this.obj = {
        name: "a"
    }
}
Person.prototype.getName = function() {
    return this.obj.name
}
Person.prototype.setName = function(name) {
    this.name = name
    // 引用類型的賦值會同步給所有子類
    this.obj.name = name
}
function Student() {
    // 繼承屬性
    Person.call(this)
}
// 繼承方法
Student.prototype = new Person()
缺點:父類內(nèi)的屬性復制執(zhí)行了兩遍
4、寄生組合式繼承
function Person() {
    this.obj = {
        name: "a"
    }
}
Person.prototype.getName = function() {
    return this.obj.name
}
Person.prototype.setName = function(name) {
    this.name = name
    // 引用類型的賦值會同步給所有子類
    this.obj.name = name
}
function Student() {
    // 繼承屬性
    Person.call(this)
}
// 這里實現(xiàn)方法的繼承
function inherit(sub, parent) {
    sub.prototype = Object.create(parent.prototype)
    sub.prototype.constructor = sub       
}
inherit(Student, Person)
這里解決了組合式繼承的父類代碼二次執(zhí)行問題
5、class實現(xiàn)繼承(參考)
class Person {
    constructor(){
        this.obj = {
            name: "a"
        }
    }
    get name() {
        return this.obj.name
    }
    set name(name) {
        this.obj.name = name
    }
}
class Student extends Person {
    constructor() {
        super()
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/52884.html

相關(guān)文章

  • 關(guān)于JS面向對象思考總結(jié)

    摘要:面向?qū)ο缶幊痰膬?yōu)勢繼承多態(tài)封裝繼承獲取父類的全部數(shù)據(jù)和功能,實現(xiàn)的是復制。多態(tài)根據(jù)實現(xiàn)方法的對象,相同方法名具有不同的行為。封裝聚合對象數(shù)據(jù)和功能,以及限制它們和外界的聯(lián)系訪問權(quán)限。 面向?qū)ο缶幊痰母拍詈驮?1、面向?qū)ο缶幊淌鞘裁?它是用抽象的方式創(chuàng)建基于現(xiàn)實世界模型的編程模式(將數(shù)據(jù)和程序指令組合到對象中) 2、面向?qū)ο缶幊痰哪康?在編程中促進更好的靈活性和可維護性,在大型軟件工程...

    weij 評論0 收藏0
  • JS程序

    摘要:設(shè)計模式是以面向?qū)ο缶幊虨榛A(chǔ)的,的面向?qū)ο缶幊毯蛡鹘y(tǒng)的的面向?qū)ο缶幊逃行┎顒e,這讓我一開始接觸的時候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續(xù)了解設(shè)計模式必須要先搞懂面向?qū)ο缶幊蹋駝t只會讓你自己更痛苦。 JavaScript 中的構(gòu)造函數(shù) 學習總結(jié)。知識只有分享才有存在的意義。 是時候替換你的 for 循環(huán)大法了~ 《小分享》JavaScript中數(shù)組的那些迭代方法~ ...

    melody_lql 評論0 收藏0
  • 關(guān)于javascript面向對象編程

    摘要:所以讓我們趕緊切入正題,一起來看看關(guān)于腳本的面向?qū)ο缶幊獭K韵旅孀屛覀冇眠@些特性重新寫一下上面實現(xiàn)的函數(shù),看一下更原汁原味的面向?qū)ο缶幊獭? 今天懷著忐忑的心情寫下這篇文章,因為這畢竟是我第一篇真正意義上的技術(shù)文章,鞏固知識的同時,希望可以給閱讀的人帶來收獲,就很滿足了。所以讓我們趕緊切入正題,一起來看看關(guān)于Java腳本的面向?qū)ο缶幊獭?showImg(https://segmentf...

    Enlightenment 評論0 收藏0
  • 前端基礎(chǔ)進階(十):面向對象實戰(zhàn)之封裝拖拽對象

    摘要:前面幾篇文章,我跟大家分享了的一些基礎(chǔ)知識,這篇文章,將會進入第一個實戰(zhàn)環(huán)節(jié)利用前面幾章的所涉及到的知識,封裝一個拖拽對象。不封裝對象直接實現(xiàn)利用原生封裝拖拽對象通過擴展來實現(xiàn)拖拽對象。 showImg(https://segmentfault.com/img/remote/1460000008699587); 前面幾篇文章,我跟大家分享了JavaScript的一些基礎(chǔ)知識,這篇文章,...

    Eidesen 評論0 收藏0
  • 前端思考 - 收藏集 - 掘金

    摘要:并嘗試用為什么你統(tǒng)計的方式是錯的掘金翻譯自工程師的文章。正如你期望的,文中的前端開發(fā)單一職責原則前端掘金單一職責原則又稱單一功能原則,面向?qū)ο笪鍌€基本原則之一。 單頁式應(yīng)用性能優(yōu)化 - 首屏數(shù)據(jù)漸進式預加載 - 前端 - 掘金前言 針對首頁和部分頁面打開速度慢的問題,我們開始對單頁式應(yīng)用性能進行優(yōu)化。本文介紹其中一個方案:基于 HTTP Chunk 的首屏數(shù)據(jù)漸進式預加載方案,該方案總...

    LinkedME2016 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<