让js的forin循环禁止forin到某个属性的话要怎么做
2024-09-21 18:43:46
//知识点1:for In循环是可以枚举到继承的属性的;
//知识点2:使用defineProperty让属性无法通过forIn枚举到;
//知识点3:用definedProperty重新定义一个属性药把这个属性设置为空,然后重新定义才行哦;
var obj = {};
Object.defineProperty(obj, "name", {
get : function() {return 1},
enumberable : false
});
//使用ECMA5中的defineProperty可以让自定义属性不可枚举;
for( prop in obj ){
console.log(prop) //name是无法枚举到的;
}; function extend( _super ) {
var F = function() {};
F.prototype = _super;
return (new F);
}; var Fn = function(){};
Fn.prototype = {
constructor : Fn,
__prop______ : "super"
}; var subInstance = extend( new Fn() );
//for in 循环是可以枚举到父级的继承属性的;
for(var prop in subInstance)
console.log(prop)//constructor ,__prop______ //要让继承的属性也无法枚举到,那就在父级中设置enumberable;
Object.defineProperty(Fn.prototype, "_test",{
enumberable : false ,
value : "__new_super"
}); //PS,如果你重新定义__prop____为不可以枚举不可行,必须要把__prop____设置为空然后重新定义不可以枚举的属性才行;
Fn.prototype.__prop______ = undefined;
Object.defineProperty(Fn.prototype, "__prop______",{
enumberable : false ,
value : "_new___prop______"
}); var subInstance = extend( new Fn() );
for(var prop in subInstance);
console.log(prop)//constructor ,__prop______
最新文章
- ASP.NET加密和解密数据库连接字符串
- STM32之看门狗(独立与窗口)
- 敏捷开发与jira
- Jquery基础之DOM操作
- MongoDB的学习--索引
- bjfu1287字符串输出的大水题
- Codeforces Round #250 (Div. 1) A. The Child and Toy 水题
- mapreduce学习指导及疑难解惑汇总
- LinkButton中添加删除确认框
- MySQL数据文件的导入、导出
- 【Espruino】NO.12 加速度传感器演示
- poj 2420
- ubuntu安装最新的mercurial
- 爬虫--Scrapy-参数等级和请求传参
- JS跨域设置和取Cookie
- SOCKET简单爬虫实现代码和使用方法
- springmvc 孔浩 hibernate code
- vuex: 简单(弹窗)实现
- IIS状态码大全【转】
- easyui基于 layui.laydate日期扩展组件
热门文章
- java如何连接testlink
- 孙鑫视频学习:“operator +=” 不明确的问题解决方法
- PAT 1063 Set Similarity (25)
- 给vs2010安装上cocos2d-x的模版
- mysql怎么查询前10条数据?
- 分层开发(MySchool总结)
- xshell5 启动显示 mfc110.dll msvcp110.dll 未找到问题 解决办法
- parse_url等函数
- 010医疗项目-模块一:用户添加的实现(Dao,Service,Action,增加页面调试,提交页面调试)
- C# 与 Unity 同名函数