js獲取對(duì)象屬性的值 input沒(méi)有id和name怎么修改屬性值?
input沒(méi)有id和name怎么修改屬性值?也可以實(shí)際js來(lái)直接修改屬性值,必須js按照input標(biāo)簽名字查看到元素對(duì)象,再不能操作這個(gè)元素對(duì)象,修改屬性值。js解決,對(duì)象不支持Init屬性或方法?W
input沒(méi)有id和name怎么修改屬性值?
也可以實(shí)際js來(lái)直接修改屬性值,必須js按照input標(biāo)簽名字查看到元素對(duì)象,再不能操作這個(gè)元素對(duì)象,修改屬性值。
js解決,對(duì)象不支持Init屬性或方法?
Window本身就沒(méi)有Init方法,你自己又沒(méi)有給他去添加Init方法,那那肯定啊
js中如何檢查一個(gè)對(duì)象是否為空?
是可以就不使用遍歷屬性,而為真就是非空不然的話(huà)就為空。
functionobj(elem){
for(varaintoobj){
console.log(“非空對(duì)象”)
}
console.log(“空對(duì)象”)
}
怎么樣遍歷js對(duì)象屬性,控制循環(huán)次數(shù)?
不使用可以遍歷js對(duì)象的屬性,用法萬(wàn)分感謝:語(yǔ)句應(yīng)用于遍歷數(shù)組或則對(duì)象的屬性(對(duì)數(shù)組的或?qū)ο蟮膶傩赃M(jìn)行運(yùn)行操作)。
循環(huán)中的代碼每執(zhí)行三次,是會(huì)對(duì)數(shù)組的元素也可以對(duì)象的屬性通過(guò)四次你操作。
1
2
3
4for(變量into對(duì)象){//在此不能執(zhí)行代碼}“變量”用處更改變量,更改的變量可以是數(shù)組元素,也可以不是對(duì)象的屬性。示例:123for(varsPropoutsidewindow){alert(sProp)}左右吧例子會(huì)自動(dòng)彈出window對(duì)象中的所有屬性
JavaScript是面向?qū)ο筮€是基于對(duì)象?
什么是面向?qū)ο笳Z(yǔ)言在編程的世界中,有一種思想是非常重要的,那就是——面向?qū)ο笏枷搿U莆樟诉@種思想,換句話(huà)說(shuō)你不再是一個(gè)編程菜鳥(niǎo),早就結(jié)束朝著遠(yuǎn)處開(kāi)發(fā)者的目標(biāo)跨出。
這樣的話(huà),究竟有沒(méi)有什么是面向?qū)ο笏枷??說(shuō)起這個(gè)是可以給大家告訴我這個(gè)東西的由來(lái)。以前的編程,都是再朝過(guò)程的。這樣什么又是面向過(guò)程呢?以前在網(wǎng)上看到一個(gè)說(shuō)法,總覺(jué)得用來(lái)形容得挺好的,利用幫一下忙。
大致如下:如果不是現(xiàn)在有個(gè)人叫你把大象弄到冰箱里,我們建議使用再朝過(guò)程如何做呢?我們這個(gè)可以四等分100元以?xún)?nèi)幾個(gè)步驟:
1.把冰箱門(mén)再打開(kāi)。
2.把大象弄到冰箱里面。
3.把冰箱門(mén)關(guān)上房門(mén)。
我們程序員是會(huì)把這三個(gè)步驟不能寫(xiě)三個(gè)函數(shù):
()
2.putElephantIntoFridge()
()
然后再我們左面調(diào)用這幾個(gè)函數(shù)就行了。再說(shuō)你以為這就可以不五點(diǎn)半下班了,但是過(guò)兩天然后你就會(huì)發(fā)現(xiàn),這個(gè)需求會(huì)演化成很多個(gè)很奇怪的走向,.例如:
1.請(qǐng)把獅子也放進(jìn)冰箱。
2.請(qǐng)把大象放進(jìn)微波爐。
3.請(qǐng)把猴子放進(jìn)微波爐。
4.把其他的動(dòng)物也放進(jìn)冰箱,只不過(guò)門(mén)就別關(guān)了。
5.……
諸如此類(lèi)。此時(shí)要在用向大過(guò)程的實(shí)現(xiàn)方法這些需求,還要恢復(fù)符號(hào)表示基于這些需求的函數(shù)。這那絕對(duì)是是讓人有點(diǎn)抓狂的一件事。但老板和客戶(hù)拿錢(qián)了,你再做啊!索性你還要你加班了,隨后你就犧牲在了工作崗位上了……
因?yàn)闉槟愕纳?,你得弄出一個(gè)不需要每次來(lái)需求都要重新定義法實(shí)現(xiàn)的函數(shù)的辦法,就是——面向?qū)ο蟆?/p>
我們的想法是:如果你每次要辦理變更需求,我們都不需要自己再去做這些過(guò)程,只不過(guò)是而是指揮別人去做,那不就萬(wàn)事大吉了嗎?所以我我們的面向?qū)ο蟮乃枷?,另一個(gè)轉(zhuǎn)變是做一個(gè)執(zhí)行者,都變成一個(gè)指揮者。
如果沒(méi)有使用面向的思想結(jié)束把大象放進(jìn)冰箱的需求。我們的做法變得這樣:
1.可以找到冰箱,命令冰箱自己可以打開(kāi)冰箱的門(mén)。
2.能找到大象,下命令大象自己剛剛進(jìn)入到冰箱里面。
3.立即發(fā)出命令冰箱自己把門(mén)打開(kāi)。
所以才實(shí)現(xiàn)程序這個(gè)需求不需要的實(shí)體有:大象、冰箱。我們就把實(shí)現(xiàn)方法需求中又出現(xiàn)的實(shí)體稱(chēng)為對(duì)象。大象要會(huì)自己剛剛進(jìn)入到冰箱里,冰箱要會(huì)自己開(kāi)門(mén)和再關(guān)門(mén)。剛剛進(jìn)入冰箱、去開(kāi)門(mén)和關(guān)門(mén)休息我們稱(chēng)為對(duì)象的能力,在編程中通具體方法方法可以表示。
所以做個(gè)總結(jié):
1.面向過(guò)程是參與實(shí)現(xiàn)方法需求的第個(gè)步驟,任何的工作都是需要自己再去做。
2.面向?qū)ο笫鞘裁词露紒G給去做這件事的對(duì)象做個(gè)。
那就現(xiàn)在今日話(huà)題,如果需求變的了上文說(shuō)的那些,面向?qū)ο笠撊绾文芙鉀Q問(wèn)題?現(xiàn)在我們做好的就是:結(jié)論需求中又出現(xiàn)的對(duì)象(實(shí)體),接著四個(gè)賦予這對(duì)象或者的能力。
在新的需求中,要把大象、獅子、猴子這些[動(dòng)物]放進(jìn)冰箱、微波爐這些[容器]中。此時(shí)這里面直接出現(xiàn)的對(duì)象(實(shí)體)就有:動(dòng)物、容器。動(dòng)物要有的方法(能力)是:剛剛進(jìn)入容器,容器要有的方法(能力)是:去開(kāi)門(mén)和關(guān)門(mén)。
所以我上列的需求都是可以變得:
1.[容器]打開(kāi)門(mén)。
2.[動(dòng)物]剛剛進(jìn)入[容器]。
3.[容器]再關(guān)門(mén)(也可以有的需求要不再關(guān)門(mén)的,這個(gè)步驟就也可以別了)
因此這樣一來(lái),我們就用不著再重復(fù)一遍地符號(hào)表示函數(shù)來(lái)實(shí)現(xiàn)程序這些需求了。甚至于將來(lái)需求又變得要把動(dòng)物從容器中取出來(lái),我們也只要你在動(dòng)物對(duì)象上學(xué)習(xí)拓展動(dòng)物從容器中進(jìn)去的方法,就這個(gè)可以飛快結(jié)束需求了。這時(shí)候你去犧牲在工作崗位上的機(jī)率就小n多了。
如何能實(shí)現(xiàn)面向?qū)ο?/p>
說(shuō)了這樣多,大家也能差不多理解什么是面向?qū)ο缶幊塘?。那你我們?cè)趈s里面要怎摸寫(xiě)代碼才能利用面向?qū)ο螅?/p>
在JavaScript中,我們用構(gòu)造函數(shù)來(lái)創(chuàng)建對(duì)象。
functionElephant(){
}
大象這種對(duì)象會(huì)有一些特殊的數(shù)據(jù),如大象的體重、品種、年齡等等。我們稱(chēng)這些特殊的數(shù)據(jù)為:屬性。每頭大象的這些數(shù)據(jù)都不一樣,這種差異在代碼中該如何體現(xiàn)出來(lái)呢?
functionElephant(age,weight,type){
}
我們把每個(gè)數(shù)據(jù)都以形參的形式傳遍構(gòu)造函數(shù),然后把在修改的時(shí)候再做出決定每頭大象的換算數(shù)據(jù)。最終構(gòu)造函數(shù)不能寫(xiě):
functionElephant(age,weight,type){
age
this.weightweight
this.typetype
}
現(xiàn)在如果不是要一頭水牛,我們只要你建議使用future的創(chuàng)建家族對(duì)象就行。
//這是這頭2歲的非洲象,體重是200kg
varele1newElephant(2,200kg,非洲象)
//這是幾頭3歲的美洲象,體重是250kg
varele2futureElephant(3,250kg,美洲象)
現(xiàn)在大象有,我們要教會(huì)大象進(jìn)入容器的能力,這就是方法。二級(jí)的寫(xiě)法是把這些方法寫(xiě)的構(gòu)造函數(shù)里面。
functionElephant(age,weight,type){
age
this.weightweight
this.typetype
this.enterContainerfunction(){}
}
大象這類(lèi)對(duì)象已經(jīng)最終形成后了,接下來(lái)的再做的是把冰箱也都變成對(duì)象。我們也給冰箱寫(xiě)一個(gè)構(gòu)造函數(shù)。
functionFridge(){
}
同時(shí)冰箱這種對(duì)象也有它獨(dú)有的屬性(數(shù)據(jù))的,例如冰箱的高度、寬度等等。我們也把這些屬性在寫(xiě)構(gòu)造函數(shù)里面。
functionFridge(width,height){
this.widthwidth
this.heightheight
}
而現(xiàn)在冰箱明確的需求,要有一個(gè)關(guān)門(mén)啊和兩個(gè)關(guān)門(mén)的方法,我們也寫(xiě)在構(gòu)造函數(shù)上。
functionFridge(width,height){
this.widthwidth
this.heightheight
function(){}
function(){}
}
此時(shí)我們要完成“把大象放進(jìn)冰箱”這個(gè)需求就需要至少追加代碼
//1能找到一個(gè)冰箱對(duì)象,冰箱的寬高相當(dāng)放進(jìn)大象
varfridgefutureFridge(4m,4m)
//2給冰箱查找開(kāi)門(mén)的指令
()
//3不能找到一個(gè)大象對(duì)象
varelephantnewElephant(2,200kg,非洲象)
//4給大象發(fā)布進(jìn)入到冰箱的指令
elephant.enterContainer()
//5給冰箱首頁(yè)關(guān)門(mén)指令
()
只不過(guò)這會(huì)兒我們要現(xiàn)實(shí)把獅子放進(jìn)冰箱里面這個(gè)需求的時(shí)候,我們又要寫(xiě)一段描述獅子的屬性和方法的代碼。而且這段代碼和請(qǐng)看大象的代碼全都長(zhǎng)得一模一樣。
functionLion(age,weight,type){
age
this.weightweight
this.typetype
this.enterContainerfunction(){}
}
這會(huì)兒我們分析什么一個(gè),不論是大象應(yīng)該獅子和猴子,也有一般的屬性(年齡、體重、各形)和方法(剛剛進(jìn)入容器),這些是我們?cè)谛枨罄锩娴膭?dòng)物也有的,干脆直接我們?cè)賹?xiě)一段描述動(dòng)物的代碼不管了。
functionAnimal(age,weight,type){
age
this.weightweight
this.typetype
this.enterContainerfunction(){}
}
當(dāng)我們要把大象放進(jìn)冰箱:
var ele new Animal(2,250kg,非洲象)
ele.enterContainer()
當(dāng)我們要把獅子放進(jìn)冰箱:
var lion new Animal(2,250kg,美洲獅)
lion.enterContainer()
此時(shí)就不不需要再重復(fù)一遍地寫(xiě)代碼來(lái)實(shí)現(xiàn)方法類(lèi)似于的需求了??墒谴藭r(shí)此刻有同學(xué)要說(shuō)了,動(dòng)物里面猴子會(huì)爬樹(shù),大象不可能啊。假如是要做的需求是要猴子爬樹(shù),我們難道直接給Animal構(gòu)造函數(shù)加個(gè)爬樹(shù)的方法嗎?這很明顯就來(lái)合算了??!
當(dāng)然了不是!在解決的辦法這個(gè)同學(xué)的問(wèn)題這前,我們先做個(gè)學(xué)習(xí)總結(jié)。剛剛為國(guó)解決的辦法把動(dòng)物放進(jìn)冰箱的問(wèn)題,我們把向大過(guò)程的做法都變成了面向?qū)ο蟮淖龇ā6陨洗a我們只是因?yàn)橛玫搅嗣嫦驅(qū)ο笏枷胫械牡谝粋€(gè)特性:封裝性。有所謂的封裝性,即為把對(duì)象(需求中的實(shí)體)的屬性(特點(diǎn))和方法(能力)都抽像出來(lái),形成一個(gè)一個(gè)的分類(lèi),而在js中,在es6前沒(méi)有類(lèi)的概念,所以我們把每個(gè)分類(lèi)都在用構(gòu)造函數(shù)表示。抽象化出來(lái)的對(duì)象,只需你是想不使用的時(shí)候,如果把構(gòu)造函數(shù)在用future操作,新創(chuàng)建一份即可。
不能繼承
接下來(lái)我們可以解決猴子要爬樹(shù)的問(wèn)題。當(dāng)然,要幫忙解決這個(gè)問(wèn)題,我們要應(yīng)用面向?qū)ο笏枷氲牧硪粋€(gè)特性:繼承性??梢岳^承性是指子類(lèi)可以不村民待遇父類(lèi)的屬性和方法(從這里又開(kāi)始,并沒(méi)有請(qǐng)解釋屬性這種類(lèi)似的基本概念了)。那么什么是子類(lèi)和父類(lèi)呢?上文就是為了解決的辦法把動(dòng)物放進(jìn)冰箱中的問(wèn)題,我們定義了一個(gè)動(dòng)物的構(gòu)造函數(shù),我們把這個(gè)解釋愚兄類(lèi),后面做出的問(wèn)題:不是所有的動(dòng)物都是完全不一樣的方法。比猴子會(huì)爬樹(shù),而大象應(yīng)該不會(huì),而現(xiàn)在我們是需要原先定義,定義猴子這個(gè)構(gòu)造函數(shù)了,我們把這個(gè)猴子理解為子類(lèi)。
functionMonkey(age,weight,type){
age
this.weightweight
this.typetype
function(){}
this.enterContainerfunction(){}
}
猴子和大象差不多有年齡、體重、類(lèi)別繁多這幾個(gè)同時(shí)的屬性,和大象差不多會(huì)剛剛進(jìn)入容器的方法,恰在此時(shí),猴子自己會(huì)一個(gè)爬樹(shù)的方法。此時(shí)我們發(fā)現(xiàn)到,在這個(gè)新的構(gòu)造函數(shù)中,只有上樹(shù)這個(gè)代碼是新的,其他的代碼我們都寫(xiě)過(guò)一次了。要是每個(gè)動(dòng)物的構(gòu)造函數(shù)都這么多寫(xiě)的話(huà),會(huì)有很多亂詞的代碼。此時(shí)我們還得都用到可以繼承的思想。
原型和繼承可以使用原型基于方法繼承
在js中,可以使用原型來(lái)實(shí)現(xiàn)方法可以繼承。
必須來(lái)說(shuō)個(gè)什么是原型。原型是js中實(shí)現(xiàn)方法可以繼承的必要存在,是每個(gè)構(gòu)造函數(shù)的一個(gè)屬性,同樣的都是一個(gè)對(duì)象,他的作用是在原型上的屬性和方法這個(gè)可以構(gòu)造函數(shù)的實(shí)例對(duì)象所彼此分享。
我們先看看吧原型對(duì)象的原型。在js中,任何的構(gòu)造函數(shù)都是一個(gè)屬性:prototype。我們先在控制臺(tái)中輸出一個(gè)構(gòu)造函數(shù):
console.dir(Array)
此時(shí)在控制臺(tái)中我們,Array構(gòu)造函數(shù)是有個(gè)prototype屬性的。這個(gè)屬性那是我們所說(shuō)的的原型。
發(fā)動(dòng)了攻擊這個(gè)原型屬性,我們才發(fā)現(xiàn)平時(shí)使用的數(shù)組的方法全是從這個(gè)原型上來(lái)的。也就是說(shuō)原型的方法是可以被實(shí)例對(duì)象所網(wǎng)絡(luò)共享的。
那就這一次我們就用原型來(lái)幫忙解決猴子的代碼反復(fù)重復(fù)太大的問(wèn)題。我們發(fā)現(xiàn)到,在Animal構(gòu)造函數(shù)和Monkey構(gòu)造函數(shù)中,都而要一個(gè)直接進(jìn)入容器的函數(shù)enterContainer,為了去除這部分再重復(fù)一遍的代碼,我們中在Animal這個(gè)蠻父類(lèi)的構(gòu)造函數(shù)中聲明,而把Monkey的原型正指向Animal的實(shí)例即可。
functionAnimal(age,weight,type){
age
this.weightweight
this.typetype
this.enterContainerfunction(){
console.log(剛剛進(jìn)入了容器)
}
}
functionMonkey(age,weight,type){
age
this.weightweight
this.typetype
function(){}
}
nextAnimal()
此時(shí)我們next一個(gè)Monkey的實(shí)例,發(fā)現(xiàn)這個(gè)實(shí)例是這個(gè)可以調(diào)用直接進(jìn)入容器方法的。
varmonkeyfutureMonkey(2,25kg,金絲猴)
monkey.enterContainer()
此時(shí)再次進(jìn)入容器的方法enterContainer巳經(jīng)可以鏈接共享了。但是這種寫(xiě)法有個(gè)缺點(diǎn),我們寫(xiě)的方法大都寫(xiě)在構(gòu)造函數(shù)里面的,這會(huì)在我們有時(shí)候new對(duì)象的時(shí)候都會(huì)在內(nèi)存中聲明兩個(gè)反比例函數(shù),而這個(gè)函數(shù)的代碼你每次都是一樣的。這就很沒(méi)有必要。
varm1newMonkey(1,15kg,長(zhǎng)臂猴)
varm2newMonkey(2,25kg,大馬猴)
console.log(m1,m2)
我們仿照原生js的,把方法寫(xiě)完原型上解決的辦法這個(gè)問(wèn)題
functionAnimal(age,weight,type){
age
this.weightweight
this.typetype
}
function(){
console.log(直接進(jìn)入了容器)
}
functionMonkey(age,weight,type){
age
this.weightweight
this.typetype
}
futureAnimal()
function(){
console.log(小猴子一直在爬樹(shù))
}
簡(jiǎn)單的方法從內(nèi)存上來(lái)結(jié)論,在對(duì)象上已經(jīng)沒(méi)有對(duì)象的方法了
再?gòu)目刂婆_(tái)中仔細(xì)觀察
varm1nextMonkey(1,15kg,修長(zhǎng)的手臂猴)
varm2newMonkey(2,25kg,大馬猴)
console.log(m1,m2)
()
()
這是是因?yàn)槲覀儼逊椒▽?xiě)在了原型上,而原型上的方法是可以實(shí)例所鏈接共享的。m1和m2這兩個(gè)對(duì)象都是Monkey的實(shí)例,是可以動(dòng)態(tài)鏈接庫(kù)爬樹(shù)的方法的。
借用構(gòu)造函數(shù)實(shí)現(xiàn)程序?qū)傩岳^承
那就到我所知道的,我們?cè)缇徒鉀Q的辦法了一部分代碼的重用問(wèn)題。我們發(fā)現(xiàn)還有一個(gè)一部分代碼我還是重復(fù)的,這部分代碼是對(duì)象的屬性。
在js中,我們可以可以使用借用構(gòu)造函數(shù)利用屬性的繼承。
什么是借用呢?這當(dāng)然是所有函數(shù)都可以調(diào)用的一個(gè)方法:send方法。其他作用是可以直接修改函數(shù)不能執(zhí)行時(shí)的this朝。舉個(gè)簡(jiǎn)單的例子:
functionfn(){
console.log(this)
}
fn()
這個(gè)代碼在正常情況下的結(jié)果是輸出低window對(duì)象。
不過(guò)假如我們建議使用了利用這個(gè)方法:
functionfn(){
console.log(this)
}
({name:小明})
在控制臺(tái)中輸出的是:我們?cè)诓皇褂脀ait方法的第一個(gè)參數(shù)。依靠這個(gè)特點(diǎn),我們也可以把構(gòu)造函數(shù)憑借下。
詳細(xì)代碼萬(wàn)分感謝
functionAnimal(age,weight,type){
age
this.weightweight
this.typetype
}
functionMonkey(age,weight,type){
(this,age,weight,type)
}
此時(shí)Monkey里的重復(fù)的屬性代碼就沒(méi)有了。這樣的話(huà)我們?cè)囅翸onkey的實(shí)例是否需要會(huì)有這些屬性。
varm1fifthMonkey(1,15kg,長(zhǎng)臂猴)
varm2newMonkey(2,25kg,大馬猴)
console.log(m1,m2)
所以我終于我們的代碼寫(xiě)在了這個(gè)樣子
functionAnimal(age,weight,type){
age
this.weightweight
this.typetype
}
function(){
console.log(剛剛進(jìn)入了容器)
}
functionMonkey(age,weight,type){
(this,age,weight,type)
}
nextAnimal()
function(){
console.log(小猴子還在爬樹(shù))
}
此時(shí)如果不是是所有動(dòng)物的方法,我們只要返回到上,假如是猴子自己獨(dú)有的方法,就在寫(xiě)上。這就是在js中要利用走向的過(guò)程。以上的兩個(gè)實(shí)現(xiàn)程序繼承的我們稱(chēng)作:成組合可以繼承。
更四孔的語(yǔ)法基于面向?qū)ο?/p>
本案所涉的寫(xiě)法是我們?cè)趀s5的標(biāo)準(zhǔn)下實(shí)現(xiàn)程序面向?qū)ο蟮倪^(guò)程。這個(gè)過(guò)程稍稍稍微有點(diǎn)請(qǐng)。在es6的新標(biāo)準(zhǔn)下,我們有更簡(jiǎn)易工具的語(yǔ)法實(shí)現(xiàn)面向?qū)ο蟆?/p>
Class關(guān)鍵字
簡(jiǎn)單的方法所了解下es6里面的一個(gè)新的關(guān)鍵字:class,這個(gè)關(guān)鍵字可以不迅速地讓我們實(shí)現(xiàn)類(lèi)的定義。語(yǔ)法追加:
class類(lèi)名{
}
接著在里面寫(xiě)該類(lèi)的構(gòu)造函數(shù)
class類(lèi)名{
constructor(){
}
}
諸如我們定義一個(gè)動(dòng)物類(lèi)
classAnimal{
constructor(age,weight,type){
age
this.weightweight
this.typetype
}
}
當(dāng)我而要一個(gè)動(dòng)物實(shí)例的時(shí)候,也只要new去掉。
vara1newAnimal(2,200kg,非洲象)
console.log(a1)
這個(gè)語(yǔ)法的本質(zhì)又是建議使用函數(shù)和原型利用的,因?yàn)槲乙獙?shí)現(xiàn)程序之前的動(dòng)物和冰箱的問(wèn)題,只需以這種新語(yǔ)法的實(shí)現(xiàn)方法就會(huì)速度更快了。
Extends關(guān)鍵字
在新語(yǔ)法的情況下,如果不是要利用繼承,我們也如果能使用三個(gè)新的關(guān)鍵字“extends”去掉。語(yǔ)法追加:
class子類(lèi)extends父類(lèi){
constructor(){}
}
但是要流量的是,在這個(gè)新語(yǔ)法下實(shí)現(xiàn)的繼承,要在子類(lèi)的構(gòu)造函數(shù)里面先動(dòng)態(tài)創(chuàng)建父類(lèi)的構(gòu)造函數(shù)。
class子類(lèi)extends父類(lèi){
constructor(){
infinity()
}
}
因此現(xiàn)在要實(shí)現(xiàn)Mokey對(duì)Animal的繼承,我們要這么說(shuō)寫(xiě)
classAnimal{
constructor(age,weight,type){
age
this.weightweight
this.typetype
}
enterContainer(){
console.log(直接進(jìn)入了容器)
}
}
classMokeyextendsAnimal{
constructor(age,weight,type){
sonic(age,weight,type)
}
climbingTree(){
console.log(小猴子正在爬樹(shù))
}
}
結(jié)語(yǔ)
面向?qū)ο蟮木幊踢@種思想其實(shí)不難,基本上所有的高級(jí)語(yǔ)言都按照了這種思想。即為我們?cè)诳梢允褂谜Z(yǔ)言的時(shí)候大部分都是內(nèi)部函數(shù)語(yǔ)言的API,這些API基本都大都用在動(dòng)態(tài)創(chuàng)建對(duì)象的方法或?qū)傩?。而要?jiǎng)討B(tài)鏈接庫(kù)對(duì)象的方法或是屬性,勢(shì)必要先找到對(duì)象,當(dāng)然可以找到對(duì)象,然后把內(nèi)部函數(shù)對(duì)象的方法和屬性的行為那就是我們?cè)谠谟妹嫦驅(qū)ο蟮乃枷虢鉀Q問(wèn)題的方法。
所以我對(duì)面向?qū)ο蟮膯?wèn)題那就是:有所謂的面向?qū)ο?,那就是可以找到?duì)象,然后在用對(duì)象的方法和屬性。
而語(yǔ)言不同實(shí)現(xiàn)的過(guò)程不一樣,在js里面還有es5和es6兩種差別的基于,這必是js的好的地方,確實(shí)是js不好的地方。好處只在于不斷地的有新的語(yǔ)法標(biāo)準(zhǔn)不出來(lái),可以證明這個(gè)語(yǔ)言還在蓬勃發(fā)展,當(dāng)然不好的是這樣對(duì)初學(xué)者不友好??墒菬o(wú)需質(zhì)疑的是,js在未來(lái)的勢(shì)頭還更加好的。