“小白,你知道什么是常量什么是變量么?”
“知道啊!常量是無法被更改的,比如數學上常用的Pi的值是3.1415926、數學常數的值、黃金分割的值等等,當然還包括一些明確知道的值,比如正常人的胳膊數量是2,單手手指數量是5等等。變量是可以被隨意更改的,比如人的身高、公司每月收入支出等等。”,小白利索的回答道。
“你在javascript中怎么定義變量呢?”
小白說:“你不是告我用var進行定義么?”
老朱:“恩,通過var定義的變量或者直接賦值的變量,我們在使用的時候要更改他們的值是非常方便的,只需要重新賦值就可以了。可是經常在開發的過程中會碰到一些常量,我們并不希望用戶可以更改這些值,你能根據之前所學的知識解決這個問題么?”
小白:“跟使用代碼的人說一下不要修改這個值就可以了啊。”
老朱:“恩,你說的也算是個辦法,可是萬一就是有人要改呢?”
小白:“暈,那就沒辦法了。javascript中不是沒有常量么?”
老朱:“你可以想辦法模擬啊,js是非常靈活的語言。你再想想!用對象的方式能不能實現?”
小白:“哦!我知道了,把變量定義到對象的內部,這個變量就是私有變量,然后只提供取這個變量的方法,不提供修改的方法就可以了。”
“我在XBMath這個funcion中定義了兩個私有變量,然后返回了一個對象,對象中包含了兩個方法分別是返回Pi的值和e的值的方法。這樣就可以通過返回對象的方法取對應的變量值了。”
老朱:“恩,不錯,能想到通過return返回一個對象來處理,說明你已經對js很有心得了,你寫的這個模式非常像一種設計模式:單例模式。單例模式不需要使用new進行實例化,通常我們會用這種模式來管理自己的代碼庫。你如果留心的話就會發現很多js控件都是用這種模式來管理的。比如:”
“使用這種模式管理代碼非常方便,假如我們需要獲取用戶信息,通過對象的點語法XB.User.getUserInfo()就可以使用對應的方法了。”
小白:“這確實是一個好辦法,不管有多少功能,只需要按照功能分類就可以了,又漲知識了,我去把這塊再練習練習。”
想學H5的朋友可以關注老爐,您的關注是我持續更新《小白HTML5成長之路》的動力!