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

資訊專欄INFORMATION COLUMN

深入學(xué)習(xí)js的面向?qū)ο?

loostudy / 1367人閱讀

摘要:字符串也可以是一個(gè)對(duì)象日期是一個(gè)對(duì)象數(shù)學(xué)和正則表達(dá)式也是對(duì)象數(shù)組是一個(gè)對(duì)象甚至函數(shù)也可以是對(duì)象一般的語(yǔ)言,都是利用類來(lái)創(chuàng)建對(duì)象,完成面向?qū)ο蟮倪^(guò)程。

在之前的一篇文章的末尾我提到了JavaScript的對(duì)象創(chuàng)建方法,可以利用函數(shù),內(nèi)置對(duì)象和this等關(guān)鍵詞實(shí)現(xiàn)對(duì)象的創(chuàng)建。但是很遺憾,我最先接觸的面向?qū)ο蟮木幊陶Z(yǔ)言是java,因而對(duì)于這些實(shí)現(xiàn)面向?qū)ο蟮姆椒ú⒎亲约旱氖走x。下面是那篇文章:
記一次兩小時(shí)的js編程學(xué)習(xí)

我們必須明白面向?qū)ο蟮木唧w含義,尤其對(duì)于JavaScript中來(lái)說(shuō),因?yàn)楹苊黠@它與其他語(yǔ)言中存在著較大的差別。JavaScript 提供多個(gè)內(nèi)建對(duì)象,比如 String、Date、Array 等等。

對(duì)象只是帶有屬性和方法的特殊數(shù)據(jù)類型。JavaScript中對(duì)象被當(dāng)做了特殊數(shù)據(jù)結(jié)構(gòu)struct,而一般的語(yǔ)言被當(dāng)做類的實(shí)例化。

布爾型可以是一個(gè)對(duì)象。

數(shù)字型可以是一個(gè)對(duì)象。

字符串也可以是一個(gè)對(duì)象

日期是一個(gè)對(duì)象

數(shù)學(xué)和正則表達(dá)式也是對(duì)象

數(shù)組是一個(gè)對(duì)象

甚至函數(shù)也可以是對(duì)象

一般的語(yǔ)言,都是利用類來(lái)創(chuàng)建對(duì)象,完成面向?qū)ο蟮倪^(guò)程。舉個(gè)最熟悉的java語(yǔ)言的例子:

Scanner input=new Scanner(System.in);
int num=input.function();
String num=input.var;

而JavaScript卻不同,這是由于JavaScript的設(shè)計(jì)本質(zhì)上是一種面向過(guò)程的語(yǔ)言。雖然JavaScript如今早已演變成一種面向?qū)ο蟮恼Z(yǔ)言,卻也不使用類來(lái)創(chuàng)建對(duì)象。

直到2015年6月的ES6,OOP被標(biāo)準(zhǔn)化。舉個(gè)例子:

function Car(Color,Year,Make,Miles){
  this.color=Color;
  this.year=Year;
  this.make=Make;
  this.odometerReading=Miles;
  this.setOdometer=function(newMiles){
    this.odometerReading=newMiles;  
  }
}

這里有一個(gè)很嚴(yán)肅的問(wèn)題,即類的擴(kuò)展,在js中來(lái)說(shuō)就是對(duì)象屬性和方法的擴(kuò)展。java中有繼承extends來(lái)實(shí)現(xiàn)對(duì)父類的繼承。但JavaScript中卻根本沒(méi)有類的概念,就只能另尋它法完成擴(kuò)展和繼承。

在JavaScript中,當(dāng)一個(gè)對(duì)象已經(jīng)被實(shí)例化,如果我想想讓它擁有新的方法和屬性就需要借用關(guān)鍵字prototype。舉個(gè)例子:

function Car(color){
    this.color=color
}
var car=new Car("red")
console.log(car.color)
// car.length=5
// car.setColor("green")
Car.prototype.length=5
Car.prototype.setColor=function(newColor){
    this.color=newColor
}
console.log(car.length)
car.setColor("green")
console.log(car.color)
-----------------------------------------------------
red
5
green
[Done] exited with code=0 in 0.206 seconds

我們需要給car加上長(zhǎng)度和設(shè)置新的顏色,需要利用沒(méi)有實(shí)例化之前的Car,再借用關(guān)鍵詞prototype才可以完成添加屬性和新方法的操作。

除了擴(kuò)展,我們還需要繼承,JavaScript依舊使用prototype關(guān)鍵詞完成繼承的操作。

function Pet(){
  this.animal="pet"
  this.name="ahhh"
}
function Cat(){
  this.age=2
}
//接下來(lái)就是讓Cat這個(gè)類擁有Pet類的屬性和方法的操作
Cat.prototype=new Pet()  //給Cat類加上Pet類的全部屬性和方法

為什么說(shuō)上面的Cat和Pet是類,如同java,我們默認(rèn)類的首字母大寫(xiě)。JavaScript使用函數(shù)面向?qū)ο蟮暮锰幵谟诳梢栽诤瘮?shù)中添加眾多的變量和函數(shù)。內(nèi)置的Object()過(guò)于簡(jiǎn)單。

推薦閱讀:
記一次兩小時(shí)的js編程學(xué)習(xí)

個(gè)人博客十八
歡迎大家交流博客,我擅長(zhǎng)串改大佬們寫(xiě)的源碼喲!

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/95720.html

相關(guān)文章

  • JS程序

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

    melody_lql 評(píng)論0 收藏0
  • PHP學(xué)習(xí)路線圖

    摘要:學(xué)習(xí)路線圖建議最后買一個(gè)域名和阿里云服務(wù)器,真正的將代碼部署到云服務(wù)器上去,走一次上線流程,用一下管理一下代碼會(huì)更棒。建議學(xué)習(xí)路線圖這個(gè)時(shí)候使用寫(xiě)一個(gè)大并發(fā)的多服務(wù)器的秒殺出來(lái)。 PHP學(xué)習(xí)路線圖 在網(wǎng)上很多人公布了太多的PHP學(xué)習(xí)路線圖,本人在互聯(lián)網(wǎng)公司工作十余年,也帶了很多PHP入門(mén)的新手,將他們的一些問(wèn)題和學(xué)習(xí)路線圖為大家整理出來(lái),希望很多小白少走彎路。 一、 網(wǎng)上某些錯(cuò)誤的學(xué)習(xí)...

    wapeyang 評(píng)論0 收藏0
  • 面向對(duì)象 JavaScript

    摘要:是完全的面向?qū)ο笳Z(yǔ)言,它們通過(guò)類的形式組織函數(shù)和變量,使之不能脫離對(duì)象存在。而在基于原型的面向?qū)ο蠓绞街校瑢?duì)象則是依靠構(gòu)造器利用原型構(gòu)造出來(lái)的。 JavaScript 函數(shù)式腳本語(yǔ)言特性以及其看似隨意的編寫(xiě)風(fēng)格,導(dǎo)致長(zhǎng)期以來(lái)人們對(duì)這一門(mén)語(yǔ)言的誤解,即認(rèn)為 JavaScript 不是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,或者只是部分具備一些面向?qū)ο蟮奶卣鳌1疚膶⒒貧w面向?qū)ο蟊疽猓瑥膶?duì)語(yǔ)言感悟的角度闡述為什...

    novo 評(píng)論0 收藏0
  • 深入學(xué)習(xí)js之——原型和原型鏈

    摘要:我們用一張圖表示構(gòu)造函數(shù)和實(shí)例原型之間的關(guān)系好了構(gòu)造函數(shù)和實(shí)例原型之間的關(guān)系我們已經(jīng)梳理清楚了,那我們?cè)趺幢硎緦?shí)例與實(shí)例原型,也就是或者和之間的關(guān)系呢。 開(kāi)篇: 在Brendan Eich大神為JavaScript設(shè)計(jì)面向?qū)ο笙到y(tǒng)的時(shí)候,借鑒了Self 和Smalltalk這兩門(mén)基于原型的語(yǔ)言,之所以選擇基于原型的面向?qū)ο笙到y(tǒng),并不是因?yàn)闀r(shí)間匆忙,它設(shè)計(jì)起來(lái)相對(duì)簡(jiǎn)單,而是因?yàn)閺囊婚_(kāi)始B...

    FingerLiu 評(píng)論0 收藏0
  • 深入學(xué)習(xí)js之——原型和原型鏈

    摘要:我們用一張圖表示構(gòu)造函數(shù)和實(shí)例原型之間的關(guān)系好了構(gòu)造函數(shù)和實(shí)例原型之間的關(guān)系我們已經(jīng)梳理清楚了,那我們?cè)趺幢硎緦?shí)例與實(shí)例原型,也就是或者和之間的關(guān)系呢。 開(kāi)篇: 在Brendan Eich大神為JavaScript設(shè)計(jì)面向?qū)ο笙到y(tǒng)的時(shí)候,借鑒了Self 和Smalltalk這兩門(mén)基于原型的語(yǔ)言,之所以選擇基于原型的面向?qū)ο笙到y(tǒng),并不是因?yàn)闀r(shí)間匆忙,它設(shè)計(jì)起來(lái)相對(duì)簡(jiǎn)單,而是因?yàn)閺囊婚_(kāi)始B...

    xialong 評(píng)論0 收藏0

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

0條評(píng)論

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