亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript精煉---類(lèi)(class)、構(gòu)造函數(shù)(constructor)、原型(proto

zzbo / 2824人閱讀

摘要:在討論構(gòu)造器和原型方法前,我可以看看一種叫做工廠方式的仿造方法。因此,出現(xiàn)了構(gòu)造函數(shù)方式,它的關(guān)鍵在于構(gòu)造器概念的引入。

類(lèi) Class
類(lèi)的概念應(yīng)該是面向?qū)ο笳Z(yǔ)言的一個(gè)特色,但是JavaScript并不像Java,C++等高級(jí)語(yǔ)言那樣擁有正式的類(lèi),而是多數(shù)通過(guò)構(gòu)造器以及原型方式來(lái)仿造實(shí)現(xiàn)。在討論構(gòu)造器和原型方法前,我可以看看一種叫做“工廠方式”的仿造方法。

function start() {

   alert("Bang!!");

}


function createCar(color, title) {

   var car = {};

   car.color = color;

   car.title = title;

   car.start = start;

   return car;

}

 

var car1 = createCar("red", "BMW");

var car2 = createCar("yellow", "VOIS");

這種方式顯然可以實(shí)現(xiàn)class的功能,但是外形上怎么也無(wú)法說(shuō)它是個(gè)class以及class實(shí)例的創(chuàng)建過(guò)程。因此,出現(xiàn)了“構(gòu)造函數(shù)方式”,它的關(guān)鍵在于構(gòu)造器(Constructor)概念的引入。

構(gòu)造器 Constructor
加粗文字
我們先來(lái)看“構(gòu)造函數(shù)方式”的具體做法:

function start(){

   alert("Bang!!!");

}

 

//constructor

function Car(color, title){

   this.color = color;

   this.title = title;

   this.start = start;

}

 

var car1 = new Car("red", "BMW");

var car2 = new Car("yellow", "VOIS");

這個(gè)看起來(lái)有點(diǎn)類(lèi)的樣子了吧(先不提那個(gè)難看的外置function)?我們發(fā)現(xiàn),那個(gè)constructor其實(shí)就是一個(gè)簡(jiǎn)單的function,它與“工廠方式”中的createCar()區(qū)別就在于:1、方法名大寫(xiě) 2、沒(méi)有了空對(duì)象的創(chuàng)建和返回 3、使用this做引用。那原來(lái)的那個(gè)空對(duì)象的創(chuàng)建以及返回的步驟去哪了呢?這兩個(gè)步驟,現(xiàn)在都由創(chuàng)建實(shí)例時(shí)的“new”實(shí)現(xiàn)了?!皀ew”這個(gè)操作符負(fù)責(zé)創(chuàng)建一個(gè)空對(duì)象,然后將那個(gè)叫做構(gòu)造器的function添加到實(shí)例對(duì)象中并觸發(fā)它,這樣這個(gè)function實(shí)際上就是這個(gè)對(duì)象的一個(gè)method,function中的this指向的便是這個(gè)對(duì)象,最后將這個(gè)對(duì)象返回。根據(jù)如上分析,我們可以把這個(gè)過(guò)程簡(jiǎn)單分解為如下代碼:

var obj = {};

obj.constructor = Car;

obj.constructor("red", "BMW");  //”this“ refers to obj

return obj;


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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/105706.html

相關(guān)文章

  • JavaScript繼承理解:ES5繼承方式+ES6Class繼承對(duì)比

    摘要:寄生組合式繼承的繼承方式有多種主要有原型鏈繼承借用構(gòu)造函數(shù)組合式繼承寄生式繼承和寄生組合式繼承。中利用定義類(lèi),實(shí)現(xiàn)類(lèi)的繼承子類(lèi)里調(diào)用父類(lèi)構(gòu)造函數(shù)實(shí)現(xiàn)實(shí)例屬性和方法的繼承子類(lèi)原型繼承父類(lèi)原型,實(shí)現(xiàn)原型對(duì)象上方法的繼承。 JavaScript中實(shí)現(xiàn)繼承 ??在JavaScript中實(shí)現(xiàn)繼承主要實(shí)現(xiàn)以下兩方面的屬性和方法的繼承,這兩方面相互互補(bǔ),既有共享的屬性和方法,又有特有的屬性和方法。 ...

    liaoyg8023 評(píng)論0 收藏0
  • javascript的面向?qū)ο螅?em>原型鏈及繼承

    摘要:也就是說(shuō),不必在構(gòu)造函數(shù)中添加定義對(duì)象信息,而是可以直接將這些信息添加到原型中。子類(lèi)的屬性,表示構(gòu)造函數(shù)的繼承,總是指向父類(lèi)。以前,這些原生構(gòu)造函數(shù)是無(wú)法繼承的。 面向?qū)ο?js是一門(mén)基于對(duì)象的語(yǔ)言。js中的一切皆對(duì)象; console.log(Object.prototype.toString.call(123)) //[object Number] console....

    Xufc 評(píng)論0 收藏0
  • JavaScript 五十問(wèn)——從源碼分析 ES6 Class 的實(shí)現(xiàn)機(jī)制

    摘要:防止類(lèi)的構(gòu)造函數(shù)以普通函數(shù)的方式調(diào)用。這個(gè)函數(shù)的主要作用是通過(guò)給類(lèi)添加方法,其中將靜態(tài)方法添加到構(gòu)造函數(shù)上,將非靜態(tài)的方法添加到構(gòu)造函數(shù)的原型對(duì)象上。 Class是ES6中新加入的繼承機(jī)制,實(shí)際是Javascript關(guān)于原型繼承機(jī)制的語(yǔ)法糖,本質(zhì)上是對(duì)原型繼承的封裝。本文將會(huì)討論:1、ES6 class的實(shí)現(xiàn)細(xì)2、相關(guān)Object API盤(pán)點(diǎn)3、Javascript中的繼承實(shí)現(xiàn)方案盤(pán)點(diǎn)...

    LeexMuller 評(píng)論0 收藏0
  • Javascript面向?qū)ο笈c繼承

    摘要:眾所周知,是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,如果說(shuō)針對(duì)面向?qū)ο髞?lái)發(fā)問(wèn)的話(huà),我會(huì)想到兩個(gè)問(wèn)題,在中,類(lèi)與實(shí)例對(duì)象是如何創(chuàng)建的,類(lèi)與實(shí)例對(duì)象又是如何實(shí)現(xiàn)繼承的。但是在中是指向的,因?yàn)槊恳粋€(gè)構(gòu)造函數(shù)其實(shí)都是這個(gè)對(duì)象構(gòu)造的,中子類(lèi)的指向父類(lèi)可以實(shí)現(xiàn)屬性的繼承。 眾所周知,Javascript是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,如果說(shuō)針對(duì)面向?qū)ο髞?lái)發(fā)問(wèn)的話(huà),我會(huì)想到兩個(gè)問(wèn)題,在js中,類(lèi)與實(shí)例對(duì)象是如何創(chuàng)建的,類(lèi)與實(shí)例對(duì)...

    pcChao 評(píng)論0 收藏0
  • ES6中class的使用

    摘要:如果不指定一個(gè)構(gòu)造函數(shù)方法則使用一個(gè)默認(rèn)的構(gòu)造函數(shù)。一個(gè)類(lèi)中出現(xiàn)多次構(gòu)造函數(shù)方法將會(huì)拋出一個(gè)錯(cuò)誤。四關(guān)鍵字作為函數(shù)時(shí),指向父類(lèi)的構(gòu)造函數(shù)。五類(lèi)的屬性和屬性作為構(gòu)造函數(shù)的語(yǔ)法糖,同時(shí)有屬性和屬性,因此同時(shí)存在兩條繼承鏈。 一、class的定義與基本用法 1.class的定義 ECMAScript 2015 中引入的 JavaScript 類(lèi)實(shí)質(zhì)上是 JavaScript 現(xiàn)有的基于原型的...

    用戶(hù)84 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<