国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript 設計模式之單體模式 面向對象學習基礎

2024-05-06 14:10:24
字體:
來源:轉載
供稿:網友
單體模式(singleton)

單體是在腳本加載時創建的,能將一系列有關聯的變量和方法組織為一個邏輯單元,邏輯單元里面的內容通過單一的變量進行訪問;

一個單體主要分為三部分

用于訪問內部信息的入口變量(如:Sky)
屬性(如:nickName/age/timeInfo)
方法(如:sayHello)

基本結構

代碼如下:
var Sky = {

/*
* 作用一,變量管理
*/

nickName: "sky",
age: "26",

/*
* 作用二,加載中初始化變量
* 在加載過程中執行并初始化Sky.info
*/

timeInfo: function()
    {
var _year = new Date().getFullYear();
return _year;
}(),

/*
* 作用三,函數管理,讓你的函數看起來不再那么散亂
*/

sayHello: function()
    {
alert("hello,world!");
}

}
//所有內部信息通過Sky這個變量進行訪問;
alert(Sky.timeInfo);


以下是更詳細的說明,看完了這篇文章,相信你應該差不多了解了,網上好多高手的js寫法了,單體模式很常用。

單體是一個用來劃分命名空間并將一批相關的屬性和方法組織在一起的對象,如果他可以被實例化,那么他只能被實例化一次。
單體模式是javascript里面最基本但也是最有用的模式之一。
特點:

. 可以來劃分命名空間,從而清除全局變量所帶來的危險。
. 利用分支技術來來封裝瀏覽器之間的差異。
. 可以把代碼組織的更為一體,便于閱讀和維護。

單體的基本結構(正確寫法):

代碼如下:
/*Basic Singleton*/
var Singleton = {
attribute1:true,
attribute2:10,
method1:function(){},
     method2:function(){}
};

劃分命名空間:
代碼如下:
var box = {
width:0,
height:0,
getArea:function(){
return this.width*this.height;//js中對象成的訪問必須是顯示的,即this是不能省略的
},
init:function(w,h){
// width = w;
// height = h;這種方式相當于定義了兩個全局變量,(沒加var聲明的變量為全局變量)
// 并不是對對象width和height的賦值
//下面是正確的
this.width = w;
this.height = h;
}
}//box劃分了一個命名空間,命名空間里的變量只在空間里有效

上面的單體中的所有的成員以及方法都是公有的(public),也就是在單體的外部可以對他們進行任意的改動,那為什么說單體提供了一個命名空間呢?

我們繼續:
代碼如下:
var box = {
width:0,
height:0,//單體的變量
getArea:function(){
return width*height;//中的,width,height其實并不是單體的變量,而是在init中定義的全局變量
}
init:function(w,h){
width = w;
height = h;
}
}//init中width,height其實并不是單體的變量
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 如皋市| 福海县| 富民县| 淮南市| 吉木萨尔县| 桂林市| 镇平县| 庆城县| 江都市| 上思县| 托克托县| 收藏| 延津县| 富川| 长泰县| 宝应县| 固镇县| 兴山县| 柳江县| 白城市| 阜新| 资阳市| 铅山县| 左权县| 龙游县| 佛冈县| 佳木斯市| 莫力| 陆良县| 吉林省| 萍乡市| 长泰县| 桃园县| 河间市| 年辖:市辖区| 象山县| 苗栗市| 龙南县| 正阳县| 通州市| 新竹县|