怎样设置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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值