Object.defineProperty()
Object.defineProperty(对象名,属性名,描述符)
描述符
{
writable: false, // 不可读写
configurable // 不可配置
}
// 举例
Object.defineProperty(objName, "name", {writable: false, value: "zhangSan"});
- 单例模式
// 匿名函数+立即执行+返回对象+闭包
var obj = function(){
// 定义私有属性和方法
return {
// 共有属性和方法
}
}()
//注意
let obj = function () {
let name = 'knockkey'
return {
age: 18,
getAge: function () {
console.log(age)
},
getName: function () {
console.log(name)
}
}
}();
obj.name = '123';
obj.getName()// 'knockkey'
Object.freeze(obj)使用该方法后,不可给对象添加和删除属性,也不可对现有属性进行更改