显示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 相关文章推荐
比较简单实用的使用正则三种版本的js去空格处理方法
Nov 18 Javascript
jQuery.event兼容各浏览器的event详细解析
Dec 18 Javascript
javascript中全局对象的parseInt()方法使用介绍
Dec 19 Javascript
AngularJS 依赖注入详解和简单实例
Jul 28 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
Nov 03 Javascript
Javascript实现基本运算器
Jul 15 Javascript
Angular2 父子组件通信方式的示例
Jan 29 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
Jun 18 Javascript
vue+koa2实现session、token登陆状态验证的示例
Aug 30 Javascript
vue实现图片上传预览功能
Dec 23 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
js不常见操作运算符总结
Nov 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添加Xdebug扩展的方法
2014/02/12 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
python对象及面向对象技术详解
2016/07/19 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
技能竞赛活动方案
2014/02/21 职场文书
安全教育实施方案
2014/03/02 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
解除劳动合同证明书
2014/09/26 职场文书
结婚仪式主持词
2015/06/29 职场文书
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python
JavaScript函数柯里化
2021/11/07 Javascript