一、JavaScript 部分
1.defineConst() 定义常量
功能作用
- 创建常量对象,即对象的属性全部是常量的对象
- 创建一个或者多个常量
使用细则
- 只需调用该函数,将创建好的对象传入即可转化成常量对象;
- 创建常量,只要调用函数,传入window对象和创建好的全局变量,即可转换成常量;
| 语法 | 参数 |
|---|---|
| defineConst(objName,attrName1,attrName2,...) | objName,对象名;attrName,对象拥有的属性名,字符串格式 |
源代码
function defineConst(obj){
if(arguments.length===1){
// 如果参数只有1个,将对象的所有属性设为常量
for(var item in obj){
if(obj.hasOwnProperty(item)){
if(typeof obj[item] === "object"){
defineConst(obj[item])
};
Object.defineProperty(obj,item,{
writable:false
})
};
};
}else if(arguments.length>1){
// 如果参数有2个或者以上,将传入的属性设为常量
for(var index = 1;index<arguments.length;index++){
if(obj.hasOwnProperty(arguments[index])){
if(typeof obj[arguments[index]] === "object"){
defineConst(obj[arguments[index]])
};
Object.defineProperty(obj,arguments[index],{
writable:false
})
};
}
};
// 不阻止window对象扩展
if(obj!=window){
Object.seal(obj);
};
return;
};
tip:该函数同样适用于数组,但是子对象的属性目前只能全部定为常量,不能选择性设置。