Javascript面向對象編程指南(六)——getter和setter

接下來再讓我們看兩個關于閉包的應用示例。首先是創(chuàng)建getter和setter。假設現(xiàn)在有一個變量,它所表示的是某類特定值,或某特定區(qū)間內的值。我們不想將該變量暴露給外部。因為那樣的話,其他部分的代碼就可以有直接修改它的可能,所以我們需要將它保護在相關函數(shù)的內部,然后提供兩個額外的函數(shù)——一個用于獲取變量值,一個用于給變量重新賦值。并在函數(shù)中引入某種驗證措施,以便在賦值之前給予變量一定的保護。另外,為了簡潔起見,我們對該類中的驗證部分進行了簡化;即這里只處理數(shù)字值。

我們需要將getter喝setter這兩種函數(shù)放在一個共同的函數(shù)中,并在該函數(shù)中定義secret變量,著使得兩個函數(shù)能夠共享同一個作用域,具體代碼如下:

var getValue, setValue;
(function
  var secret = 0;
  getValue = function () {
    return secret;
  };
  setValue = function (v) {
    if (typeof v === "number") {
      secret = v;
    }
  }
} () );

在這里,所有一切都是通過一個即時函數(shù)來實現(xiàn)的,我們在其中定義了全局函數(shù)setValue()和getValue(),并以此來確定局部變量secret的不可直接訪問性。

getValue();  // 0
setValue(123)  // 123
getValue()  // 123

setValue(false);
getValue();  // 123
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 函數(shù)和對象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,950評論 0 5
  • 前言 人生苦多,快來 Kotlin ,快速學習Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,692評論 9 118
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,194評論 1 10
  • 禪與 Objective-C 編程藝術 (Zen and the Art of the Objective-C C...
    GrayLand閱讀 1,775評論 1 10
  • 307、setValue:forKey和setObject:forKey的區(qū)別是什么? 答:1, setObjec...
    AlanGe閱讀 1,720評論 0 1

友情鏈接更多精彩內容