显示js对象所有属性和方法的函数


Posted in Javascript onOctober 16, 2009

要想看到实际效果,可以先声明一些属性跟方法,否则是看不到,仔细往下看有例子的。

function ShowObjProperty(Obj) 
{ 
var PropertyList=''; 
var PropertyCount=0; 
for(i in Obj){ 
if(Obj.i !=null) 
PropertyList=PropertyList+i+'属性:'+Obj.i+'\r\n'; 
else 
PropertyList=PropertyList+i+'方法\r\n'; 
} 
alert(PropertyList); 
}
<script type="text/javascript"> 
// 创建一个对象 myObject 以及三个属性 sitename, siteurl, sitecontent。 
var myObject = new Object(); 
myObject.sitename = "布啦布啦"; 
myObject.siteurl = "blabla.cn"; 
myObject.sitecontent = "网页教程代码图库的中文站点"; 
//遍历对象的所有属性 
for (prop in myObject) 
{ 
document.write("属性 '" + prop + "' 为 " + myObject[prop]); 
document.write(" 
"); 
} 
</script>

今天网上Java Tang博客找到了一个用来遍历JavaScript某个对象所有的属性名称和值的方法,这样想使用方法的时候非常的直观和方便。代码如下:

/* 
* 用来遍历指定对象所有的属性名称和值 
* obj 需要遍历的对象 
* author: Jet Mah 
*/ 
function allPrpos ( obj ) { 
// 用来保存所有的属性名称和值 
var props = "" ; 
// 开始遍历 
for ( var p in obj ){ 
// 方法 
if ( typeof ( obj [ p ]) == " function " ){ 
obj [ p ]() ; 
} else { 
// p 为属性名称,obj[p]为对应属性的值 
props += p + " = " + obj [ p ] + " \t " ; 
} 
} 
// 最后显示所有的属性 
alert ( props ) ; 
}

AJAX的JavaScript的反射机制,反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。 在JavaScript中利用for(…in…)语句实现反射,其语法如下:

for(var p in obj){
//语句
}

在Ajax编程中,经常要能动态的改变界面元素的样式,这可以通过对象的style属性来改变,比如要改变背景色为红色,可以这样写:
element.style.backgroundColor="#ff0000";

基本上CSS里拥有的属性在JavaScript中都能够使用:

function setStyle(_style){ 
//得到要改变样式的界面对象 
var element=getElement(); 
element.style=_style; 
}

直接将整个style对象作为参数传递了进来:
var style={ 
color:#ffffff, 
backgroundColor:#ff0000, 
borderWidth:2px 
}

这时可以这样调用函数:
setStyle(style);

或者直接写为:
setStyle({ color:#ffffff,backgroundColor:#ff0000,borderWidth:2px});

这段代码看上去没有任何问题,但实际上,在setStyle函数内部使用参数_style为element.style赋值时,如果element原先已经有了一定的样式,例如曾经执行过:
element.style.height="20px";

而_style中却没有包括对height的定义,因此element的height样式就丢失了,不是最初所要的结果。要解决这个问题,可以用反射机制来重写setStyle函数:

function setStyle(_style){ 
//得到要改变样式的界面对象 
var element=getElement(); 
for(var p in _style){ 
element.style[p]=_style[p]; 
} 
}

程序中遍历_style的每个属性,得到属性名称,然后再使用方括号语法将element.style中的对应的属性赋值为_style中的相应属性的值。从而,element中仅改变指定的样式,而其他样式不会改变,得到了所要的结果。^-^
Javascript 相关文章推荐
客户端静态页面玩分页
Jun 26 Javascript
jQuery让控件左右移动的三种实现方法
Sep 08 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
Jan 23 Javascript
js 获取元素下面所有li的两种方法
Apr 14 Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 Javascript
IScroll5 中文API参数说明和调用方法
May 21 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
Aug 10 Javascript
js实现碰撞检测特效代码分享
Oct 16 Javascript
jQuery接受后台传递的List的实例详解
Aug 02 jQuery
js实现图片放大展示效果
Aug 30 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
vue实现购物车的监听
Apr 20 Javascript
半角全角相互转换的js函数
Oct 16 #Javascript
JavaScript 三种创建对象的方法
Oct 16 #Javascript
JQuery困惑—包装集 DOM节点
Oct 16 #Javascript
JavaScript 对象成员的可见性说明
Oct 16 #Javascript
Javascript 圆角div的实现代码
Oct 15 #Javascript
IE Firefox 使用自定义标签的区别
Oct 15 #Javascript
JavaScript 基础知识 被自己遗忘的
Oct 15 #Javascript
You might like
关于php循环跳出的问题
2013/07/01 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python中__init__.py文件的作用详解
2016/09/18 Python
Python字典简介以及用法详解
2016/11/15 Python
Python异常处理操作实例详解
2018/08/28 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
学习Python需要哪些工具
2020/09/04 Python
益模软件Java笔试题
2012/03/27 面试题
党性分析自查总结
2014/10/14 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
小学远程教育工作总结
2015/08/13 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python
SQL中的三种去重方法小结
2021/11/01 SQL Server
python高温预警数据获取实例
2022/07/23 Python