面试题答案
一键面试闭包实现数据隐藏的基本原理
闭包是指函数可以访问并操作其词法作用域之外的变量,即使在函数定义的外部作用域已经执行完毕。通过闭包实现数据隐藏的原理在于,将需要隐藏的数据定义在函数内部,外部无法直接访问这些内部数据。而通过返回一个内部函数,该内部函数作为访问这些隐藏数据的接口,从而达到数据隐藏的目的,因为外部只能通过这个接口函数来间接访问内部数据。
示例代码
function DataHider() {
let privateData = '这是隐藏的数据';
function getPrivateData() {
return privateData;
}
function setPrivateData(newData) {
privateData = newData;
}
return {
get: getPrivateData,
set: setPrivateData
};
}
// 使用示例
const data = DataHider();
console.log(data.get()); // 输出: 这是隐藏的数据
data.set('新的隐藏数据');
console.log(data.get()); // 输出: 新的隐藏数据
在上述代码中,privateData
变量被隐藏在 DataHider
函数内部,外部无法直接访问。通过返回的 get
和 set
函数,外部代码可以间接获取和修改 privateData
的值,实现了数据隐藏。