js筆記(對象)

前言:隨着js應用場景的普遍,「能用js的場景最終都將使用js解決」,足以說明它的魅力,所以掌握js是必不可少的。javascript

回顧一下以前使用js 的方法java


場景:ajax

這個佈局分爲三部分,上,左,右,點擊左部按鈕會進行ajax請求,返回不一樣的界面瀏覽器

返回a界面,a界面會引用a.js緩存

返回b界面,b界面會引用b.js函數

js是客戶端腳本,所以加載js文件以後,用戶沒有清除緩存以前文件就是一直存在的,所以存在一些緩存問題。佈局

問題1:當a.js加載事後,在b.js中可使用a.js的方法和行爲,這樣就會存在干擾,尤爲是定時器行爲this

當a.js加載以後就會每隔1s執行一次isAlert();由於使用的是ajax,因此即便你已經離開了這個界面仍然會每隔1s執行一次isAlert();如圖對象

問題2:如上所試,a.js和b.js有兩個同名函數,如果在c頁面同時要用到這兩個函數,就比較麻煩,要麼在新建一個c.js,複製兩個函數並改爲不一樣的名字而後引入。blog

秉承着不搞事不舒服的原則,開始折騰之旅

分析:若只有問題1,以最笨的方法來想,就是寫個js每一次請求以前刪除本地瀏覽器的全部緩存,可是這樣形成的問題有點大,最突出的問題就是ajax是局部刷新,刷新後的頁面是嵌入在原頁面以內,所以來講原界面的一些依賴js是不能被刪除的。同時給問題2的解決產生了較大難度。根據萬事萬物皆對象的原則,參考java的獲得一些思路

爲何不能將每一個js文件當作一個類呢?

一個js文件就是一個對象,對象.屬性,對象.行爲。一樣的如果能封裝,拆包,則就能完美的作到互不干擾

begin


 

在a頁面:

<a href="javascript:prseonA.isAlert()">AisAlert</a>

在b頁面

<a href="javascript:prseonB.isAlert()">BisAlert</a>

這樣一同將問題2解決

在c頁面

<a href="javascript:prseonA.isAlert()">AisAlert</a>
<a href="javascript:prseonB.isAlert()">BisAlert</a>

抽象:有許多杯子,有許多人,如果沒有標明全部者,常常會發生拿錯的狀況,尤爲是當兩個杯子外表相近的時候。當標明所屬的時候就不會發生這個問題。從口渴的時候直接去拿杯子,變成去拿本身的杯子。

以上的寫法是在加載文件的時候自動建立了對象

修改成如下

function prseonA(){
this.isAlert=function () {
    alert("說不上愛別說謊,就一點喜歡");
}
}
<a href="javascript:new prseonA().isAlert()">AisAlert</a>

總結:將’一切皆對象‘從理解化爲實用

相關文章
相關標籤/搜索