国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript面向?qū)ο缶幊讨畼?gòu)造函數(shù)與new命令

2019-11-08 01:18:47
字體:
供稿:網(wǎng)友

面向?qū)ο缶幊毯瓦^程式編程

過程式編程

由一系列函數(shù)或一系列指令組成

面向?qū)ο缶幊烫攸c

具有靈活性、代碼的可重用性、模塊性等特點,容易維護和開發(fā),非常適合多人合作的大型軟件項目。

構(gòu)造函數(shù)

“對象”是單個實物的抽象。通常需要一個模板,表示某一類實物的共同特征,然后“對象”根據(jù)這個模板生成。javaScript語言的對象體系,不是基于“類”的,而是基于構(gòu)造函數(shù)(constructor)和原型鏈(PRototype)。 1. Javascript語言使用構(gòu)造函數(shù)作為對象的模板。 2. 一個構(gòu)造函數(shù),可以生成多個對象,這些對象都有相同的結(jié)構(gòu)。 3. 構(gòu)造函數(shù)的寫法就是一個普通的函數(shù)。 4. 為了與普通函數(shù)區(qū)別,構(gòu)造函數(shù)名字的第一個字母通常大寫。 5. 函數(shù)體內(nèi)部使用了this關(guān)鍵字,代表了所要生成的對象實例。生成對象的時候,必需用new命令,調(diào)用執(zhí)行構(gòu)造函數(shù),返回一個實例對象。 6. new命令本身就可以執(zhí)行構(gòu)造函數(shù),所以后面的構(gòu)造函數(shù)可以帶括號,也可以不帶括號。

new命令的原理

創(chuàng)建一個空對象,作為將要返回的對象實例將這個空對象的原型,指向構(gòu)造函數(shù)的prototype屬性將這個空對象賦值給函數(shù)內(nèi)部的this關(guān)鍵字開始執(zhí)行構(gòu)造函數(shù)內(nèi)部的代碼

構(gòu)造函數(shù)的目的,就是操作一個空對象(即this對象),將其“構(gòu)造”為需要的樣子。如果構(gòu)造函數(shù)內(nèi)部有return語句,而且return后面跟著一個對象,new命令會返回return語句指定的對象;否則,就會不管return語句,返回this對象。

其他: 在函數(shù)內(nèi)部可以使用instanceof或new.target判斷是否通過new調(diào)用函數(shù)

function Fubar(foo,bar){ if(!(this instanceof Fubar)){return new Fubar(foo,bar);} this._foo=foo; this._bar=bar;}Fubar(1,2)._foo//1(new Fubar(1,2))._foo//1function Fubar2(foo,bar){ if(!(new.target===Fubar2)){return new Fubar2(foo,bar);} this._foo=foo; this._bar=bar;}Fubar2(1,2)._foo//1(new Fubar2(1,2))._foo//1

參考資料: http://javascript.ruanyifeng.com/oop/basic.html


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 东光县| 白朗县| 隆回县| 康平县| 韶山市| 贡嘎县| 沛县| 平顶山市| 灵石县| 通山县| 兰考县| 沐川县| 大方县| 米易县| 沅陵县| 全椒县| 淮北市| 大连市| 通海县| 新郑市| 清河县| 达日县| 湘潭市| 双柏县| 绥芬河市| 秦安县| 胶南市| 德格县| 精河县| 大同县| 昔阳县| 易门县| 桦南县| 河南省| 文水县| 云梦县| 临泽县| 渭南市| 赤峰市| 科技| 融水|