怎樣設置javascript的私有變量

衆所周知,javascript沒有私有變量。
在常規的編程範式裏面只有一種約定俗成的方法。用下劃線。
比如

function Book(title) {
  this. _title = title;  //用下劃線告訴大家這是私有變量。
}
Book.prototype = {
 display: () =>{
 ```
 }
 ```
}

但是這需要所有程序員都是道德高尚,聽話的人。萬一人家就是要粗暴的操作有下劃線的變量,你也只有乾瞪眼。 那麼我們必須找到一種辦法去讓其變成真正的私有變量。
什麼技術可以呢?對了,就是閉包。

那麼再看下面更改過的代碼。

var Book = function(newTitle) {
    let title  //定義私有變量title, 類外部無法訪問
    this.getTitle = () =>{
        return title; // 特權方法,通過方法獲得私有變量
    }
    this.setTitle = (newTitle)=>{
        title = newTitle || 'no title specified' // 特權方法,通過方法設置私有變量
    }
    this.setTitle(newTitle);  //特權方法,可以訪問私有變量
}

Book.prototype.display = ()=>{
    console.log('display'); //公有方法
}

let b = new Book('ss');
let t = b.getTitle();  
console.log(t) //ss
b.setTitle('nn');
let tt = b.getTitle();
console.log(tt) //nn
b.title //沒有輸出

你看現在就沒辦法再獲得私有變量了吧。 對於不聽話的程序員也只能遵守規則了。
下劃線拜拜!

這篇博客講得很清楚,記下了
https://www.cnblogs.com/xiongzaiqiren/p/6733985.html

這篇講單體的文章不錯,記下了
https://www.cnblogs.com/myzhibie/p/4191413.html

這篇文章講接口,寫得好,記下了
https://www.cnblogs.com/hlwyfeng/p/6099957.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章