成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

關(guān)于JavaScript面向?qū)ο竽切┦?創(chuàng)新互聯(lián)

當(dāng)你在使用手機(jī)的時(shí)候,你會(huì)發(fā)現(xiàn),你并不懂得其中的原理就會(huì)操作了,其實(shí)這就是面向?qū)ο蟮乃枷?。面向?qū)ο筮€有很多地方都會(huì)運(yùn)用到。JavaScript也不例外,現(xiàn)在跟隨我的腳步,來(lái)學(xué)習(xí)一下吧。

創(chuàng)新互聯(lián)從2013年開(kāi)始,先為金安等服務(wù)建站,金安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為金安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

面向過(guò)程和面向?qū)ο缶幊谈攀?br/>面向過(guò)程編程就是分析出解決問(wèn)題的步驟,然后使用函數(shù)把這些步驟一步步實(shí)現(xiàn),重心放在完成的每個(gè)過(guò)程上。
面向?qū)ο髣t是以封裝的思想,將問(wèn)題分析得到的數(shù)據(jù)封裝成一個(gè)個(gè)的對(duì)象,然后通過(guò)對(duì)對(duì)象的操作來(lái)完成相應(yīng)的功能。
舉個(gè)栗子:廚師炒菜
以面向過(guò)程的思想來(lái)分析應(yīng)該分為下面幾個(gè)步驟:
? 1.檢查食材是否齊全 2.如果不不夠,去菜市場(chǎng)買(mǎi)菜 3.洗菜 4.開(kāi)火 5.按炒菜(按順序放入相應(yīng)的食材,調(diào)料等) 6.出鍋裝盤(pán)
以面向?qū)ο蟮乃枷敕治鰟t是這樣的:
? 1.廚師,檢查食材,炒菜 2.采購(gòu)員,去菜市場(chǎng)買(mǎi)菜 3.墩子,洗菜,切菜,備菜
? 通過(guò)調(diào)用上面對(duì)象中的行為方法即可完成炒菜的整個(gè)過(guò)程
從上面的例子可以看出,面向?qū)ο蠛兔嫦蜻^(guò)程大的不同在于,面向?qū)ο箨P(guān)心的是由哪些對(duì)象,每個(gè)對(duì)象應(yīng)該有哪些功能,而面向過(guò)程關(guān)心的是實(shí)現(xiàn)過(guò)程中的每個(gè)步驟。
那么這兩種思想到底孰優(yōu)孰劣呢?從表面上看,貌似面向?qū)ο蟾?,為什么呢?因?yàn)樗耆衔覀兊恼K季S方式,所以在接受度方面,面向?qū)ο蟮乃枷肟隙ㄊ歉?。但是面向過(guò)程也有他的優(yōu)勢(shì),就是靈活便捷,而面向?qū)ο笙鄬?duì)來(lái)說(shuō)會(huì)更耗資源,更慢一點(diǎn)。
所以,至于以后使用哪一種,這就需要看我們的具體需求,根據(jù)不同的需求做不同的選擇。
面向?qū)ο缶幊痰南嚓P(guān)概念
通過(guò)上面的分析,我們知道面向?qū)ο蟮闹攸c(diǎn)在于功能分析和對(duì)象的封裝上,那么最終我們得到的對(duì)象的結(jié)構(gòu)是怎樣的,我們繼續(xù)往下學(xué)習(xí)。
比如,我通過(guò)對(duì)人的分析得到,每個(gè)人都有姓名,年齡,性別等屬性,同時(shí)也有吃飯睡覺(jué)等行為,那么用JS可以做如下的封裝:
var p = {
name : “xiao song”,
age : 10,
sex : 1,
eat : function () {
console.log(“吃飯”);
},
sleep : function () {
console.log(“睡覺(jué)”);
}
}console.log(p.name);//訪問(wèn)對(duì)象的屬性
p.eat();//訪問(wèn)對(duì)象的方法
上面的p則表示一個(gè)對(duì)象,其中的name / age / sex稱之為對(duì)象的屬性,eat / sleep 稱之為對(duì)象的方法,我們通過(guò)訪問(wèn)該對(duì)象的屬性或者方法達(dá)到相應(yīng)的目的即可。
DOM操作相關(guān)知識(shí)點(diǎn)復(fù)習(xí)
在學(xué)習(xí)了html之后我們發(fā)現(xiàn),html文檔中的內(nèi)容其實(shí)就是由一堆的標(biāo)簽組成,由于在后面的課程中需要使用到html,所以我們先大致的回顧一下它的結(jié)構(gòu)。

H5-JS面向?qū)ο?/p>

div h4:元素節(jié)點(diǎn) id class:屬性節(jié)點(diǎn) H5-JS面向?qū)ο螅何谋竟?jié)點(diǎn) 一個(gè)html文檔主要由這三部分組成,DOM(文檔對(duì)象模型)是對(duì)操作這些元素的屬性或者方法進(jìn)行了封裝,從而達(dá)到方便快捷的操作html的目的。 獲取元素對(duì)象:document.getElementById("div1") 訪問(wèn)元素的屬性:div1.className 訪問(wèn)元素的文本內(nèi)容:div1.innerText 增刪改元素:div1.appendChild(newNode) 下面,我們就通過(guò)這些API來(lái)講解說(shuō)明面向?qū)ο笙嚓P(guān)的內(nèi)容。 創(chuàng)建并設(shè)置標(biāo)簽(面向過(guò)程) 需求1:創(chuàng)建三個(gè)div元素,并設(shè)置邊框,背景色,文本及字體顏色 for (var i = 0; i < 3; i++) { var div = document.createElement("div"); div.innerText="div"+i; div.style.backgroundColor="green"; div.style.border="1px solid #000"; div.style.color="white"; document.body.appendChild(div); }

需求2:為頁(yè)面中存在的三個(gè)P元素設(shè)置邊框,背景色,文本及字體顏色
我是P1

我是P2

我是P3

關(guān)于JavaScript面向?qū)ο竽切┦?></p><p>需求3:獲取頁(yè)面上三個(gè)class=“test”的元素,設(shè)置邊框,背景色,文本及字體顏色<br/>我是標(biāo)題1</p><p>我是標(biāo)題2</p><p>我是標(biāo)題3<br/><img src=

  • 使用constructor屬性可以獲取到創(chuàng)建對(duì)象使用的構(gòu)造器函數(shù)對(duì)象,所以我們可以通過(guò)判斷構(gòu)造器的類(lèi)型來(lái)得知?jiǎng)?chuàng)建的對(duì)象的類(lèi)型
  • instanceof關(guān)鍵字
    function Person(name) {
    this.name = name;
    }function Dog(name) {
    this.name = name;
    }var p = new Person(“p”);var d = new Dog(“d”);console.log(p instanceof Person);//trueconsole.log(d instanceof Person);//false

    instanceof關(guān)鍵字可以直接用來(lái)判斷對(duì)象的類(lèi)型,如果是指定的類(lèi)型,返回true,反之返回false。
    構(gòu)造函數(shù)的調(diào)用和命名
    在學(xué)習(xí)了構(gòu)造函數(shù)之后,有的同學(xué)對(duì)于它和普通函數(shù)的區(qū)別還是不太清楚,這里我們就再對(duì)構(gòu)造函數(shù)做一個(gè)說(shuō)明。

    1. 構(gòu)造函數(shù)和普通函數(shù)在定義語(yǔ)法上沒(méi)有任何區(qū)別

    2. function 函數(shù)名(參數(shù)列表){代碼塊;}

    3. 為了和普通函數(shù)區(qū)分開(kāi),我們約定將構(gòu)造函數(shù)的名稱首字母大寫(xiě)

    4. 構(gòu)造函數(shù)一樣可以直接調(diào)用,此時(shí)內(nèi)部的this執(zhí)行window,這種方式不安全,有可能會(huì)在函數(shù)內(nèi)部修改當(dāng)前的全局變量,不建議使用,而且這樣做也不能創(chuàng)建對(duì)象

    5. 想要?jiǎng)?chuàng)建對(duì)象,必須使用new和構(gòu)造函數(shù)一起使用

    6. 函數(shù)上下文和this指針
      在JS編程的過(guò)程中發(fā)現(xiàn),我們大量使用到this關(guān)鍵字,用好了this,能讓我們的代碼更加優(yōu)雅。
      this總是執(zhí)行一個(gè)對(duì)象(引用類(lèi)型),但是具體執(zhí)行誰(shuí),需要根據(jù)我們?cè)谀睦锸褂胻his有關(guān)。這里主要分為下面幾種情況:

    函數(shù)外部
    函數(shù)外部的作用域是全局作用域(window),所以,在全局作用域中使用的this指向window
    普通函數(shù)內(nèi)部
    函數(shù)內(nèi)部的作用域是局部的,屬于調(diào)用當(dāng)前函數(shù)的對(duì)象,所以this執(zhí)向調(diào)用當(dāng)前函數(shù)的對(duì)象
    構(gòu)造函數(shù)內(nèi)部
    在構(gòu)造函數(shù)中,this直接執(zhí)行當(dāng)前創(chuàng)建出來(lái)的新對(duì)象
    在開(kāi)發(fā)中,我們也可以使用call或者apply函數(shù)修改this的執(zhí)行,這一點(diǎn)我們?cè)诤竺胬^續(xù)說(shuō)明。
    自定義構(gòu)造函數(shù)存在的問(wèn)題
    自定義構(gòu)造函數(shù)可以解決工廠函數(shù)帶來(lái)的對(duì)象類(lèi)型不確定的問(wèn)題,在開(kāi)發(fā)中用得非常多,那么目前我們的自定義構(gòu)造函數(shù)又是否存在問(wèn)題呢?先來(lái)看看下面的對(duì)象內(nèi)存結(jié)構(gòu)分析。
    function Person(name, age, say) {
    this.name = name;
    this.age = age;
    this.say = function(){
    console.log(“say hello”);
    }
    }var p = new Person(“zs”, 10, say);console.log§;
    上面創(chuàng)建的p對(duì)象的內(nèi)存結(jié)構(gòu)圖:
    關(guān)于JavaScript面向?qū)ο竽切┦?><br/>可以看出,我們沒(méi)創(chuàng)建一個(gè)Person對(duì)象,都會(huì)在內(nèi)存中分配如0x22和0x33這樣的內(nèi)存來(lái)存儲(chǔ)數(shù)據(jù),但是通過(guò)觀察發(fā)現(xiàn),0x33中存儲(chǔ)的是一個(gè)函數(shù),而這個(gè)函數(shù)在每個(gè)對(duì)象中都是相同<br/><img src=高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

    網(wǎng)站標(biāo)題:關(guān)于JavaScript面向?qū)ο竽切┦?創(chuàng)新互聯(lián)
    轉(zhuǎn)載來(lái)于:http://jinyejixie.com/article16/hgidg.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站標(biāo)簽優(yōu)化、小程序開(kāi)發(fā)面包屑導(dǎo)航、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、商城網(wǎng)站

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

    綿陽(yáng)服務(wù)器托管
    桑植县| 清河县| 蓬溪县| 资中县| 云龙县| 惠来县| 东明县| 瑞金市| 兖州市| 万州区| 马鞍山市| 西充县| 新安县| 共和县| 渭南市| 桂林市| 通化市| 三穗县| 平定县| 安庆市| 鲁甸县| 密云县| 呼玛县| 黄冈市| 绥德县| 元朗区| 墨玉县| 东乌珠穆沁旗| 福建省| 古丈县| 旺苍县| 昭通市| 六盘水市| 神木县| 左贡县| 湘潭县| 涟水县| 临漳县| 万盛区| 固安县| 富民县|